回答
〜運算符有點逆,所以〜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