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

Java 如何将字节数组中的特定字节转换为整数,java,type-conversion,integer,byte,Java,Type Conversion,Integer,Byte,我有一个场景,根据给定的字符串,我需要返回一个整数值。 我正在将字符串散列为字节数组。现在,由于我的整数范围是0-999,可以用2字节表示,所以我希望使用字节数组的最后两个字节来转换为整数。 但是我没有得到正确的结果 我尝试过使用字节缓冲区换行方法,将偏移量定义为length-3,将长度定义为2 ByteBuffer.wrap(bytes,bytes.length-3,2).getInt() 我希望得到一个基于数组最后两个字节的整数数据,但是 线程“main”java.nio.BufferUn

我有一个场景,根据给定的字符串,我需要返回一个整数值。 我正在将字符串散列为字节数组。现在,由于我的整数范围是0-999,可以用2字节表示,所以我希望使用字节数组的最后两个字节来转换为整数。 但是我没有得到正确的结果

我尝试过使用字节缓冲区换行方法,将偏移量定义为length-3,将长度定义为2

ByteBuffer.wrap(bytes,bytes.length-3,2).getInt()
我希望得到一个基于数组最后两个字节的整数数据,但是
线程“main”java.nio.BufferUnderflowException中的异常读取从当前位置开始的
4
字节,但是您包装的
ByteBuffer
的剩余大小(
limit-position
)为
2
,因此它会抛出
BufferUnderflowException
。相反,您应该使用,它可以存储在
int

为什么
length-3
而不是
length-2
?最后两个字节位于
length-2
length-1
。回答得好。一个次要的、离题的吹毛求疵:@DodgyCodeException谢谢你的提示!