jsbn 库 BigInteger 否定函数似乎不起作用

jsbn library BigInteger negate function seems not working

我正在使用 jsbn 库来管理 javascript 应用程序中的 BigIntegers。 看来negate功能不太好用

我希望取反函数像 Java 那样工作。

BigInteger minusOne = BigInteger.ONE.negate(); // -1

但使用 jsbn 库,以下代码会产生此结果...

var BigInteger = require('jsbn').BigInteger;

var bi = BigInteger.ONE;
console.log(bi); // 1
console.log(bi.negate()); // 268435455 but should be -1, no ??

您可以在此处尝试此代码https://runkit.com/gikoo/jsbn-negate-function/1.0.0

BigInteger 正在以一种允许他们跟踪比 JavaScript 可以跟踪的更大的数字的方式存储数字。他们是如何做到的,你应该考虑一个黑盒子——当你准备好回到一个普通的 int 时,你需要做 bi.negate().intValue(),或者如果它真的太大了,bi.negate().toString()

https://runkit.com/davidjwilkins/example-bigint