小编典典

如何将字节数组转换为其数值(Java)?

algorithm

我有一个8字节的数组,我想将其转换为相应的数值。

例如

byte[] by = new byte[8];  // the byte array is stored in 'by'

// CONVERSION OPERATION
// return the numeric value

我想要一种可以执行上述转换操作的方法。


阅读 234

收藏
2020-07-28

共1个答案

小编典典

假设第一个字节是最低有效字节:

long value = 0;
for (int i = 0; i < by.length; i++)
{
   value += ((long) by[i] & 0xffL) << (8 * i);
}

第一个字节是最高位,然后略有不同:

long value = 0;
for (int i = 0; i < by.length; i++)
{
   value = (value << 8) + (by[i] & 0xff);
}

如果您有8个以上的字节,请用BigInteger替换long

感谢Aaron Digulla纠正了我的错误。

2020-07-28