我瞎搞與位運算符,我試圖負字節轉換爲一個無符號的8位值,這是什麼人建議:爲什麼在JAVA中按位AND與字節做到這一點?
System.out.println(-20 & 0xFF); //bitwise AND on negative number and 255
所以,這個完美的作品,並返回236 , 但爲什麼?據我所知:
00010100 //binary representation of -20
11111111 //binary representation of 0xFF or 255
--------
00010100 //it returns the same exact thing, so it's either -20 or 20
它爲什麼工作?我想我錯過了一些非常簡單的事情,但我似乎無法理解它。
此外,如果我用低於256的正數進行操作,它將返回相同的數字。我似乎無法理解Java如何處理這些數字。
-20!= 20所以表示形式也不一樣。 – 2013-04-27 13:07:10