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

Определение

Возвращает результат битовой операции дополнения до единицы для значения 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

Параметры

value
BigInteger BigInteger BigInteger BigInteger

Целочисленное значение.An integer value.

Возвраты

Битовое дополнение значения value до единицы.The bitwise one's complement of value.

Комментарии

OnesComplement Метод определяет операцию побитового оператор дополнения для BigInteger значения.The OnesComplement method defines the operation of the bitwise one's complement operator for BigInteger values. Побитовое обращает оператор дополнения каждый бит в числовое значение.The bitwise one's complement operator reverses each bit in a numeric value. То есть биты value , которые 0 присваивается значение 1, в результате, а биты, равные 1 задается значение 0, в результате.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. OnesComplement Метод включает следующий код: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

Языки, которые не поддерживают пользовательские операторы могут иметь возможность вызывать OnesComplement метод напрямую для выполнения битовую операцию дополнения до единицы.Languages that do not support custom operators may be able to call the OnesComplement method directly to perform a bitwise one's complement operation. Например: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

Применяется к