在 Java 中,我可以像这样得到BigInteger
一个String
:
public static void main(String[] args) {
String input = "banana";
byte[] bytes = input.getBytes(StandardCharsets.UTF_8);
BigInteger bigInteger = new BigInteger(bytes);
System.out.println("bytes: " + Arrays.toString(bytes));
System.out.println("bigInteger: " + bigInteger);
}
哪个会打印
bytes: [98, 97, 110, 97, 110, 97]
bigInteger: 108170603228769
我正在尝试使用big-integer library在 JavaScript 中获得相同的结果。但正如你所看到的,这段代码返回了一个不同的值:
var bigInt = require('big-integer');
function s(x) {
return x.charCodeAt(0);
}
var bytes = "banana".split('').map(s);
var bigInteger = bigInt.fromArray(bytes);
console.log("bytes: " + bytes);
console.log("bigInteger: " + bigInteger);
输出:
bytes: 98,97,110,97,110,97
bigInteger: 10890897
有没有办法获得我在 Java 中使用 JavaScript 获得的结果?如果数组的长度为 32,这也可能吗?