如何在java中以字节数据类型存储大于127的值

时间:2018-05-30 06:43:24

标签: java android

如何在java中以字节数据类型存储大于127的值。

int b = 160;
System.out.println((byte)b);

打印 -96

  

注意:我想在BLE设备上写字节。所以无法转换它   短或者。

3 个答案:

答案 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),shortint

答案 2 :(得分:0)

出于这个原因,请使用intlong