BigInteger.OnesComplement(BigInteger) BigInteger.OnesComplement(BigInteger) BigInteger.OnesComplement(BigInteger) BigInteger.OnesComplement(BigInteger) Operator

Definição

Retorna o complemento bit a bit de um valor BigInteger.Returns the bitwise one's complement of a BigInteger value.

public:
 static System::Numerics::BigInteger operator ~(System::Numerics::BigInteger value);
public static System.Numerics.BigInteger operator ~ (System.Numerics.BigInteger value);
static member op_OnesComplement : System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Operator Not (value As BigInteger) As BigInteger

Parâmetros

value
BigInteger BigInteger BigInteger BigInteger

Um valor inteiro.An integer value.

Retornos

O complemento bit a bit de value.The bitwise one's complement of value.

Comentários

O OnesComplement método define a operação do operador de complemento de um bit BigInteger para valores.The OnesComplement method defines the operation of the bitwise one's complement operator for BigInteger values. O operador de complemento de bit unidirecional reverte cada bit em um valor numérico.The bitwise one's complement operator reverses each bit in a numeric value. Ou seja, os bits value que são 0 são definidos como 1 no resultado, e os bits que são 1 são definidos como 0 no resultado.That is, bits in value that are 0 are set to 1 in the result, and bits that are 1 are set to 0 in the result. O OnesComplement método habilita um código como o seguinte:The OnesComplement method enables code such as the following:

using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      BigInteger value, complement;
      
      value = BigInteger.Multiply(BigInteger.One, 9);
      complement = ~value;
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value));
      Console.WriteLine("{0,5} -- {1,-32}\n", complement, DisplayInBinary(complement));
   
      value = BigInteger.MinusOne * SByte.MaxValue;
      complement = ~value;
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value));
      Console.WriteLine("{0,5} -- {1,-32}\n", complement, DisplayInBinary(complement));
   } 

   private static string DisplayInBinary(BigInteger number)
   {
      byte[] bytes = number.ToByteArray();  
      string binaryString = string.Empty;
      foreach (byte byteValue in bytes)
      {
         string byteString = Convert.ToString(byteValue, 2).Trim();
         binaryString += byteString.Insert(0, new string('0', 8 - byteString.Length));
      }
      return binaryString;    
   }
}
// The example displays the following output:
//           9 -- 00001001
//         -10 -- 11110110
//       
//        -127 -- 10000001
//         126 -- 01111110
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim value, complement As bigInteger
      
      value = BigInteger.Multiply(BigInteger.One, 9)
      complement = Not value
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value))
      Console.WriteLine("{0,5} -- {1,-32}", complement, DisplayInBinary(complement))
      Console.WriteLine()
   
      value = BigInteger.MinusOne * SByte.MaxValue
      complement = BigInteger.op_OnesComplement(value)
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value))
      Console.WriteLine("{0,5} -- {1,-32}", complement, DisplayInBinary(complement))
      Console.WriteLine()
   End Sub

   Private Function DisplayInBinary(number As BigInteger) As String
      Dim bytes() As Byte = number.ToByteArray()  
      Dim binaryString As String = String.Empty
      For Each byteValue As Byte In bytes
         Dim byteString As String = Convert.ToString(byteValue, 2).Trim()
         binaryString += byteString.Insert(0, New String("0"c, 8 - byteString.Length))
      Next
      Return binaryString    
   End Function
End Module
' The example displays the following output:
'           9 -- 00001001
'         -10 -- 11110110
'       
'        -127 -- 10000001
'         126 -- 01111110

Idiomas que não dão suporte a operadores personalizados podem ser capazes de chamar OnesComplement o método diretamente para executar uma operação de complemento de uma bit.Languages that do not support custom operators may be able to call the OnesComplement method directly to perform a bitwise one's complement operation. Por exemplo:For example:

Imports System.Numerics

Module Example
   Public Sub Main()
      Dim value, complement As bigInteger
      
      value = BigInteger.Multiply(BigInteger.One, 9)
      complement = BigInteger.op_OnesComplement(value)
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value))
      Console.WriteLine("{0,5} -- {1,-32}", complement, DisplayInBinary(complement))
      Console.WriteLine()
   
      value = BigInteger.MinusOne * SByte.MaxValue
      complement = BigInteger.op_OnesComplement(value)
      
      Console.WriteLine("{0,5} -- {1,-32}", value, DisplayInBinary(value))
      Console.WriteLine("{0,5} -- {1,-32}", complement, DisplayInBinary(complement))
      Console.WriteLine()
   End Sub

   Private Function DisplayInBinary(number As BigInteger) As String
      Dim bytes() As Byte = number.ToByteArray()  
      Dim binaryString As String = String.Empty
      For Each byteValue As Byte In bytes
         Dim byteString As String = Convert.ToString(byteValue, 2).Trim()
         binaryString += byteString.Insert(0, New String("0"c, 8 - byteString.Length))
      Next
      Return binaryString    
   End Function
End Module
' The example displays the following output:
'           9 -- 00001001
'         -10 -- 11110110
'       
'        -127 -- 10000001
'         126 -- 01111110

Aplica-se a