我读到在 Java 中没有无符号数据类型。我需要发送此消息:
A5A5 0008 F005 0001 00000003
uin16 uint16 uint16 uint16 uint32
我这样做了:
int prefijo = 0xA5A5;
int numbytes = 0x0008;
int tipo = 0xF005;
int id = 0x0001;
long estado = 0x00000003;
是正确的方法吗?现在我需要将此信息推送到字节 [] 中以发送到我的设备。我该怎么办???
byte[] bytes = new byte[12];
谢谢
最佳答案
short
使用 16 位int
使用 32 位long
使用 64 位
无论如何,由于您使用的是十六进制值,因此可以忽略该符号:
byte b=(byte)0x81; //1000 0001
无论它以十进制“解释”得到什么符号,它都有效。
也就是说,您应该对前 4 个数字使用 short,对最后一个使用 int。
关于java - 转换为 java 无符号类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305275/