Javaのビット演算時のbyte→intへの変換

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25149&forum=12

byte a = 0xC7;
int b = a;

でいいだろって思ってたら、これだと、bがintでいう(-57)である、0xFFFFFFC7になってしまう。
よって数値としては正しいが、ビット演算としては全然だめ。

byte a = 0xC7;
int b = a & 0xff;

とすれば、bに0x000000C7が代入され、期待した結果となる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です