我的数字是从左到右以字节数组形式表示的256进制数。我想将它们转换为BigInteger,使得以下示例可以正常工作:
- [5] -> 5
- [200] -> 200
- [0,1] -> 256
- [100,2] -> 612
我想出了以下解决方案:
byte[] input = new byte[]{(byte) 200,2};
BigInteger a = BigInteger.ZERO;
BigInteger base = BigInteger.valueOf(256);
for (int i = 0; i < input.length; i++) {
a = a.add(BigInteger.valueOf(input[i] & 0xFF).multiply(base.pow(i)));
}
System.out.println(a);
虽然这个方法能用,但感觉很低效。有没有更高效的方法?
new BigInteger(array)
。这比你目前做的要更有效率。 - Andreas