如何解决jsbn 库 BigInteger 否定函数似乎不起作用
我正在使用 jsbn 库来管理 JavaScript 应用程序中的 BigInteger。 似乎 negate 功能不太好。
我希望 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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。