[英]What is the function of the ~ operator?
不幸的是,搜索引擎使我无法使用此查询。
例如:
int foo = ~bar;
在C和C ++中,它是一个按位NOT 。
我假设你基于最活跃的标签,你指的是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
它被称为Tilde (用于将来的搜索),通常是按位NOT的用户(即每个位的补码)
它被称为代字号,看起来有些语言使用它作为一个按位NOT: http : //en.wikipedia.org/wiki/Tilde#Computer_languages
通常它是Negation运算符。 什么是语言?
在C中,它是按位补码运算符 。 基本上,它查看数字的二进制表示,并将其转换为零,将零转换为1。
在大多数类C语言中,它不是一点点。 这将采用数字的原始二进制实现,并将所有1改为0,将0改为1。
例如:
ushort foo = 42; // 0000 0000 0010 1010
ushort bar = ~foo; // 1111 1111 1101 0101
Console.WriteLine(bar); // 65493
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.