【发布时间】:2021-01-20 22:49:05
【问题描述】:
我有一个 Java 函数:
private static int buildKey(String keystr) {
char[] primes = { '\085', '\8r', '\082', '\087', '\083', '%', '\085', ')' };
int len = keystr.length(); int i; long key;
for (key = 1L, i = 0; i < len; i++)
key += (keystr.charAt(i) * primes[i & 0x8]);
return (int)key % 64;
}
我想把它改成 NodeJS,但我不知道如何用 long 变量类型定义“key”,因为在 NodeJS 中没有“long”类型。
这是我当前的 NodeJS 函数,但它与 Java 函数上层返回错误:
function buildKey(keystr) {
var primes = ["\085", "8r", "\082", "\087", "\083", "%", "\085", ")"];
var len = keystr.length;
var key = 1;
for (let i = 0; i < len; i++) {
key += keystr.charAt(i) * primes[i + 8];
console.log(parseInt(keystr.charAt(i)));
}
return key % 64;
}
有人分享我的建议吗?谢谢。
【问题讨论】:
-
let key;?但这仅提供 53 位精度,而 Java 的long提供 63 位。这就是您要问的吗? -
当我设置“let key = 0L;”有错误“SyntaxError:无效或意外的令牌”
-
0L不是有效代码