6

値 0xFF00 を (Java で) 2 バイトとして表す必要があります。私はこのようにしようとしています:

int val = 0xFF00;
bytearray[0] = (byte)((val >> 8) & 0xFF);
bytearray[1] = (byte)((val >> 0) & 0xFF);

Java のバイトは 0 ~ 255 の値を保持できることを知っています。したがって、配列の最初の要素の値は 255 で、2 番目の要素の値は 0 になるはずです。しかし、代わりに得ているのは -1 と 0 です。何が間違っていますか? この -1 の値は何を意味するのでしょうか?

4

1 に答える 1

10

Java のバイトは from -128to127ではなく from 0toです255

-12 の補数バイナリであり1111 1111、符号なしバイトと同じです。255

あなたは何も悪いことをしているわけではありませ-11111 1111.

于 2012-11-28T18:57:36.000 に答える