~ 运算符

~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 intuintlong 和 ulong 类型预定义的。

对于 ~x 形式的运算,应用一元运算符重载决策(第 7.2.3 节)以选择特定的运算符实现。操作数转换为所选运算符的参数类型,结果类型是该运算符的返回类型。预定义的按位求补运算符为:

int operator ~(int x);

uint operator ~(uint x);

long operator ~(long x);

ulong operator ~(ulong x);

对于每个运算符,运算结果为 x 的按位求补。

每个 E 枚举类型都隐式地提供下列按位求补运算符:

E operator ~(E x);

~x(其中 x 是具有基础类型 U 的枚举类型 E 的表达式)的计算结果与 (E)(~(U)x) 的计算结果完全相同。

备注

用户定义的类型可重载 ~ 运算符。有关更多信息,请参见 operator。在枚举时通常允许整型运算。

示例

C# 
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);
        }
    }
}
/*
Output:
~0x00000000 = 0xffffffff
~0x00000111 = 0xfffffeee
~0x000fffff = 0xfff00000
~0x00008888 = 0xffff7777
~0x22000022 = 0xddffffdd
*/
本在线速查手册由www.w┓3┓x┓u┓e.com提供,请勿盗用!