正如其他人已经回答的那样,byte是Java中的带符号类型。范围是-128至127(含)。因此0xff等于-0x01。如果添加手动强制转换,则可以使用0xff而不是-0x01:
byte[] rawbytes={0xa, 0x2, (byte) 0xff};解决方法
编译器似乎可以这样做(仅一位数十六进制值):
byte[] rawbytes={0xa,0x2,0xf};
但这不是:
byte[] rawbytes={0xa,0xff};
我收到“可能的精度损失:int required:字节”错误?
我在做什么错-还是一位十六进制数字是特例?
Java1.5.x。