Java整数转换为仅缺少额外00的2字节数组

用户8012596

我有一个数据流,我首先使用这种方法读取了它。

int messageSerialNumber = r.readUnsignedShort();    

接下来,我将其转换为

byte[] byteMessageSerialNumber = new byte[2];
byteMessageSerialNumber[0] = (byte) messageSerialNumber;
byteMessageSerialNumber[1] = (byte) (messageSerialNumber >>> 8);

接下来我构建一个更大的缓冲区数组并向其中添加其他数据。

ByteBuffer bufReply = ByteBuffer.allocate(10);
bufReply.put(replyMessageID);
bufReply.put(byteMessageSerialNumber);
byte[] fullMessageReply=bufReply.array();

我想要的是byteMessageSerialNumber有 2 个字节,所以现在发生的是它没有额外的00.

所以它变成

05 01 00 27 36 81 82 01 2C

应该是

05 01 00 27 36 81 82 01 00 2C
斯特凡

解决方法很简单。像这样交换:

byteMessageSerialNumber[0] = (byte) (messageSerialNumber >>> 8);    
byteMessageSerialNumber[1] = (byte) messageSerialNumber;

第一个字节应该是 的第一个、最重要的部分messageSerialNumber,第二个字节应该是 的最后一个、最不重要的部分messageSerialNumber

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章