繁体   English   中英

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

[英]How to convert specific byte in a byte array to integer

我有一个场景,根据给定的String我需要返回一个整数值。 我将String哈希到一个字节数组。 既然我的整数范围是0-999,可以用2字节表示,我希望使用字节数组的最后两个字节转换为整数。 但我得不到正确的结果

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

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

我期望基于数组的最后两个字节的Integer数据,但在线程“main”中获取Exception java.nio.BufferUnderflowException

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM