0

このコードを見てください:

byte a = -124;
System.out.println(a);
System.out.println((a & 0xFF));

以下を出力します。

-124
132

それは私にとって非常に驚くべきことです。結局、には 8 ビットしか含まれていないため、 (つまり) の後でbyte変更しないでください。and0xFF11111111

考えられる理由の 1 つは、Java がビット単位の操作を行う前に変換byteすることです。intそうですか?もしそうなら、なぜですか?

4

2 に答える 2