如何将存储为小端字节数组的uint16转换为int?

问题描述 投票:0回答:1

我正在接收一些数据,该数据是一个表示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 arrays type-conversion integer unsigned-integer
1个回答
0
投票

我认为主要的复杂性是如何用Java表示uint16


0
投票

ByteBuffer.wrap()方法将数组转换为HeapByteBuffer类,其偏移量为0,其长度等于要包装的数组长度。您可以使用方法bb.getShort(i)访问两个字节,但这将在您想要无符号的地方返回负数。

© www.soinside.com 2019 - 2024. All rights reserved.