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



我正在使用jsbn库来管理javascript应用程序中的BigIntegers。否定函数似乎不起作用。

我希望否定函数的工作方式与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

最新更新