回答
〜运算符有点逆,所以〜0给你一个整数值(全二进制)。
这是字节0000 ... 0000的按位否定。它是所有位设置为1的整数的值。
在未签名的情况下,它将是最大可能值。在签署的情况下,它是-1。
〜是补码操作符,它翻转操作数的位。由于零没有设置位,因此补码将设置所有位,这也是最大大小的整数(假设为无符号)。对于带符号的数字,您将得到-1,所以将其称为“max”是有点用词不当的。
按位补码。
http://msdn.microsoft.com/en-us/library/d2bd4x66.aspx
文字0(如上面的代码)是一个int。
int是一个32位的二进制值。值0的所有位都设置为0.
〜运算符是一个按位顺序的恭维。即我交换了所有的位。
如所有的位分别为0它们都变成1。因此,我们有一个32位的值
设置为1
C#尖锐用途2称赞的所有位。其编码-1在一个int,因为所有的比特为1
0000 0000 0000 0000 0000 0000 0000 0000 == 0
operator ~
1111 1111 1111 1111 1111 1111 1111 1111 == -1
所以=>~0 == -1
关于负面投票的古董? – 2011-01-22 02:24:58
〜装置按位不是,它在反转给定整所有位。在一个带符号的int中,这会给你-1(因为int中的所有位将从0翻转为1)。查找二进制补码以获得更多关于这个的信息。
在一个unsigned int(UINT)这将给你一个整数的最大值(因为一个unsigned int最显著位没有确定迹象。)
如前所述,0〜0xFFFFFFFF的产生。
但是,我怀疑原来的程序员很困惑。执行int max = ~0 ;
将有符号整数max
设置为值-1。
~
运算符是计算逐位补码的一元位运算符。这意味着它将其参数中的所有位反转(0变成1,1变成0)。因此,
int max = ~0;
其被设置max
,导致1111 1111 1111 1111 1111 1111 1111 1111
32位值0000 0000 0000 0000 0000 0000 0000 0000
的否定。由于我们将此结果存储在Int32
中,因此与-1
相同。
它是否不如说
int max = ~0;
或
int max = -1;
取决于上下文。如果max
的点是要有一个数字的所有位是1
我会选择前者。如果max
的点是计算非负整数列表的最大值,我会选择后者(嗯,我更喜欢int max = Int32.MinValue;
,甚至更喜欢,我只是更喜欢int max = list.Max();
)。
正如其他人所说,〜是按位否定运算符。它将取整数值的所有位并切换0和1(0 - > 1和1 - > 0)。
对于有符号整数或Int32,〜0等于-1。
当您使用默认等于的“layerMask”参数实现某种基于图层的过滤系统时,通常将〜0或-1用作“ALL inclusive”掩码(星号) 1意味着它将返回任何东西(不过滤)。该过滤器确实使用AND操作(valueToFilter & layerMask)。
valueToFilter & -1如果valueToFilter也非零,则它总是非零。否则为零。
- 1. int test [] = new int [0]是什么意思?
- 2. 这里的“= 0”是什么意思?
- 3. VARBINARY(MAX)是什么意思?
- 4. UInt(0)是什么意思?
- 5. 这是什么意思? void * free_me = 0;
- 6. 这是什么意思*(int *)&x当typecasting?
- 7. 这是什么意思? (int&)a
- 8. 这是什么意思const int *&var?
- 9. 这是什么意思? int foo = foo + 4;
- 10. {0}是什么意思?
- 11. 这个切片是什么意思[:,:,0]?
- 12. switch(!0)这是什么意思
- 13. glenable(0) - 这是什么意思?
- 14. int values []是什么意思?
- 15. int A [] = {}是什么意思?
- 16. * int是什么意思?
- 17. $ .get(0)是什么意思?
- 18. yytext [0]是什么意思?
- 19. GetDC(0&)是什么意思?
- 20. '\ 0'是什么意思?
- 21. 什么是(int - > int) - >(int - > int)是什么意思?
- 22. :这是什么意思?
- 23. int(* ret)()=(int(*)())代码是什么意思?
- 24. 什么(char *)0是什么意思?
- 25. int x; arr [100]是什么意思?
- 26. '[0]'与$('#div')[0]是什么意思?
- 27. AWS:0.0.0.0/0和::/0是什么意思?
- 28. max标记是什么意思?
- 29. 什么是html * {max-height:1000000px; } 意思?
- 30. 什么是PPC,这是什么意思?
看看这个`为什么-3 ==〜2'(http://stackoverflow.com/questions/4471823/why-3-2-in-c) – 2011-01-22 03:58:56