我有一个8字节的数组,我想将其转换为相应的数值。
例如
byte[] by = new byte[8]; // the byte array is stored in 'by' // CONVERSION OPERATION // return the numeric value
我想要一种可以执行上述转换操作的方法。
假设第一个字节是最低有效字节:
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纠正了我的错误。