我正在接收一些数据,该数据是一个表示uint16的小端字节数组,但是我想将其存储在int
中。我已经将此数据包装到ByteBuffer
中,因此可以调用ByteBuffer.get()
来获取下一个字节,但是我不确定如何将这两个字节从uint16转换为int
。
byte[] data = //From UDP socket ByteBuffer bb = ByteBuffer.wrap(data); bb = bb.order(ByteOrder.LITTLE_ENDIAN); while(bb.hasRemaining()){ int n = //What goes here? }
感谢您的帮助:)
我正在接收一些数据,该数据是一个表示uint16的小端字节数组,但我想将其存储在int中。我已经将这些数据包装到ByteBuffer中,所以我可以调用ByteBuffer.get()来获得...
我认为主要的复杂性是如何用Java表示uint16
ByteBuffer.wrap()
方法将数组转换为HeapByteBuffer
类,其偏移量为0,其长度等于要包装的数组长度。您可以使用方法bb.getShort(i)
访问两个字节,但这将在您想要无符号的地方返回负数。