Java 如何在 java 中解析 uint8?
2022-09-05 00:12:54
我有一个来自UDP数据包的uint8(无符号8位整数)。Java 仅使用带符号的原语。如何使用java正确解析此数据结构?
我有一个来自UDP数据包的uint8(无符号8位整数)。Java 仅使用带符号的原语。如何使用java正确解析此数据结构?
只需将其读取为字节,然后转换为int。
byte in = udppacket.getByte(0); // whatever goes here
int uint8 = in & 0xFF;
需要位掩码,因为否则,位 8 设置为 1 的值将转换为负整数。例:
This: 10000000
Will result in: 11111111111111111111111110000000
因此,当您之后将位掩码0xFF应用于它时,前导1将被抵消。供您参考:0xFF == 0b11111111
0xFF & number
会将数字视为无符号字节。但生成的类型为int