3
比方說,我在java中下面的代碼在Java中與字節進行OR操作的問題?
byte t = (byte) 0b10001000;
byte z = 0b00000000;
z = (byte) (t|z);
你會認爲輸出是10001000,但它最終的字符串表示是-1111000, - 號是當然的第一1,使得它11111000.如果我做相同的代碼,但最後一位在Z中作爲1,例如00000001和我執行相同的操作,我得到-1110111或11110111.我認爲這是由於負符號字節t的轉換問題。有什麼辦法可以避免這種情況?有沒有什麼辦法讓01000000在OR操作中的工作與01000000相同?
你能提供一個例子嗎?有沒有辦法使用按位運算正確處理第8位? – Bigsuga
只需將您的類型更改爲int並刪除字節轉換。 - 很多谷歌的例子(和S.O.) – John3136
太棒了,謝謝! – Bigsuga