如何在java中以字节数据类型存储大于127的值。
int b = 160;
System.out.println((byte)b);
打印 -96 。
注意:我想在BLE设备上写字节。所以无法转换它 短或者。
答案 0 :(得分:8)
您可能希望以字节存储128-255范围内的值。你可以,如果你不想在同一个字节中存储-128到-1的值(显然在不同的时间)。
当你想要阅读它时,只需使用按位和运算符:
b & 0xff
答案 1 :(得分:0)
byte
的范围是包含范围-128到+127。
您无法在byte
中存储大于127的数字,但您可以滥用-128到-1的范围。由于-96的8位模式与以二进制写入的160匹配,因此输出-96。粗略地说,如果你向任何负数添加256,你可以恢复原始数字,或者使用b & 256
掩盖除最后8位之外的所有数字。
如果您要存储160,请使用char
(0到65535),short
或int
。
答案 2 :(得分:0)
出于这个原因,请使用int
或long
。