我需要轉換一個字節在Java詮釋,但我不想符號擴展,所以我也爲什麼位或操作會導致符號擴展,但有點不會?
byte b = -1
(int) (b & 0xF) // this returns 15, which is what I want
(int) (b | 0) // this returns -1, which is essentially 0xFFFF, sign extension happens, not what I want
我認爲上述兩個應該給予同樣的結果,但事實證明並非如此。 我必須錯過點位操作。
做一個或用'0'給對方號碼:您可以通過它自動裝箱到
Object
,然後檢查對象的類型進行測試。你在問什麼? –不,我的意思是我認爲0 | ((字節)-1)應該是15,但實際上它是-1。 – NSF
將零與一個值進行或運算返回值不變。 –