我需要找到一种将大数字转换为 javascript 中的十六进制字符串的方法。直接,我试过了,myBigNumber.toString(16)
但如果myBigNumber
有一个非常大的值(例如 1298925419114529174706173),那么myBigNumber.toString(16)
将返回一个错误的结果,这真是太棒了。我尝试通过自己的函数编写如下:
function (integer) {
var result = '';
while (integer) {
result = (integer % 16).toString(16) + result;
integer = Math.floor(integer / 16);
}
}
但是,大量模 16 都返回 0 (我认为这个基本问题是导致问题的原因toString
。我也尝试替换(integer % 16)
为(integer - 16 * Math.floor(integer/16))
但有同样的问题。
我还查看了 Big Integer Javascript 库,但这是一个巨大的插件,希望是相对简单的问题。
关于如何获得有效结果的任何想法?也许某种分而治之的方法?我真的很困在这里。