6

我需要将 0xFF00 的值表示为两个字节(在 Java 中)。我正在尝试这样做:

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

我知道 Java 中的字节可以保存 0-255 的值。所以我希望第一个数组元素的值是 255,第二个元素是零。但是我得到的是-1和0。我做错了什么?这个 -1 值是什么意思?

4

1 回答 1

10

java中的字节是从-128127,而不是从0255

-1是二进制补码1111 1111,等于无符号字节。255

您没有做错任何事情,您只需要知道如果看到-1,则表示字节代表位1111 1111

于 2012-11-28T18:57:36.000 回答