我正在从硬件设备中读取8个字节的数据,需要将它们转换为数字值。我想将它们转换为长整型,因为这应该可以适配8个字节。我不太熟悉Java和低级数据类型操作。我似乎有两个问题(除了事实上几乎没有关于相关硬件的文档),这些字节期望是无符号的,所以我不能进行简单的整数转换。我不确定它们的字节序。
如果有任何建议,都非常感激。
最终采用了以下代码(来自我可能应该一周前就阅读的一些源代码):
public static final long toLong (byte[] byteArray, int offset, int len)
{
long val = 0;
len = Math.min(len, 8);
for (int i = (len - 1); i >= 0; i--)
{
val <<= 8;
val |= (byteArray [offset + i] & 0x00FF);
}
return val;
}