我需要将 0xFF00 的值表示为两个字节(在 Java 中)。我正在尝试这样做:
int val = 0xFF00;
bytearray[0] = (byte)((val >> 8) & 0xFF);
bytearray[1] = (byte)((val >> 0) & 0xFF);
我知道 Java 中的字节可以保存 0-255 的值。所以我希望第一个数组元素的值是 255,第二个元素是零。但是我得到的是-1和0。我做错了什么?这个 -1 值是什么意思?
我需要将 0xFF00 的值表示为两个字节(在 Java 中)。我正在尝试这样做:
int val = 0xFF00;
bytearray[0] = (byte)((val >> 8) & 0xFF);
bytearray[1] = (byte)((val >> 0) & 0xFF);
我知道 Java 中的字节可以保存 0-255 的值。所以我希望第一个数组元素的值是 255,第二个元素是零。但是我得到的是-1和0。我做错了什么?这个 -1 值是什么意思?
java中的字节是从-128
到127
,而不是从0
到255
-1
是二进制补码1111 1111
,等于无符号字节。255
您没有做错任何事情,您只需要知道如果看到-1
,则表示字节代表位1111 1111
。