Search code examples
c#syntaxoperatorsbitwise-operatorstilde

What is ~ in C#?


Possible Duplicate:
What is the tilde (~) in a C# enumeration?
What does the tilde mean in an expression?

I have download a CRC code snippet from the internet in C# having these lines:

byte[] hashBuffer = UInt32ToBigEndianBytes(~hash);

or

public static UInt32 Compute(byte[] buffer)
{
   return ~CalculateHash(InitializeTable(DefaultPolynomial), DefaultSeed, buffer, 0, buffer.Length);
}

Solution

  • The ~ operator performs a bitwise complement operation on its operand, which has the effect of reversing each bit. Bitwise complement operators are predefined for int, uint, long, and ulong.

    From: http://msdn.microsoft.com/en-us/library/d2bd4x66.aspx

    And although it is not used this way in the example you have shown, the ~ character is also used to declare a destructor in C#.