~ Operator (C# Reference)


Updated: July 20, 2015

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

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.

System_CAPS_ICON_note.jpg Note

The ~ symbol also is used to declare destructors. For more information, see Destructors.

User-defined types can overload the ~ operator. For more information, see operator. Operations on integral types are generally allowed on enumeration.

    class BWC
        static void Main()
            int[] values = { 0, 0x111, 0xfffff, 0x8888, 0x22000022 };
            foreach (int v in values)
                Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);
    ~0x00000000 = 0xffffffff
    ~0x00000111 = 0xfffffeee
    ~0x000fffff = 0xfff00000
    ~0x00008888 = 0xffff7777
    ~0x22000022 = 0xddffffdd

C# Reference
C# Programming Guide
C# Operators