このコードを見てください:
byte a = -124;
System.out.println(a);
System.out.println((a & 0xFF));
以下を出力します。
-124
132
それは私にとって非常に驚くべきことです。結局、には 8 ビットしか含まれていないため、 (つまり) の後でbyte
変更しないでください。and
0xFF
11111111
考えられる理由の 1 つは、Java がビット単位の操作を行う前に変換byte
することです。int
そうですか?もしそうなら、なぜですか?