很遗憾,使用这个查询词搜索引擎没有找到相关结果。
例如:
例如:
int foo = ~bar;
根据您最活跃的标签,我假设您在提到C#,但在C和C++中使用相同的 NOT
操作符。
根据MSDN:
~ 操作符对其操作数执行按位补码运算,这将导致翻转每个位。按位补码运算符已为 int、uint、long 和 ulong 预定义。
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家族中的语言)中,按位取反运算符是“~”(波浪号)。不要将此运算符与“逻辑非”运算符“!”(感叹号)混淆,在C ++中,“逻辑非”将整个值视为单个布尔值——将真值更改为假值,反之亦然,并且C将0值转换为1和非0值转换为0。 “逻辑非”不是按位操作。
ushort foo = 42; // 0000 0000 0010 1010
ushort bar = ~foo; // 1111 1111 1101 0101
Console.WriteLine(bar); // 65493