如何将字节数组中的特定字节转换为整数

时间:2019-04-25 15:53:21

标签: java type-conversion integer byte

我有一个场景,其中基于给定的String我需要返回一个整数值。 我正在将String哈希到一个字节数组。现在,由于我的Integer范围是0-999,可以用2bytes表示,因此我希望使用字节数组的最后两个字节将其转换为integer。 但是我没有得到正确的结果

我尝试使用字节缓冲区包装方法,将offset定义为length-3并将长度定义为2

ByteBuffer.wrap(bytes,bytes.length-3,2).getInt()

我期望基于数组的最后两个字节的整数数据,但得到 线程“主”中的异常java.nio.BufferUnderflowException

1 个答案:

答案 0 :(得分:3)

ByteBuffer#getInt从当前位置开始读取4个字节,但是包装的ByteBuffer的剩余大小(limit - position)为2,因此抛出BufferUnderflowException。相反,您应该使用ByteBuffer#getShort,它可以存储在int中。