有没有办法增加这个数字?
console.log(79753741930607500+1) // 79753741930607500
console.log(79753741930607499+3) // 79753741930607500
UPD:
zip加密/解密函数使用64位数字:
keys[0] = 305419896;
keys[1] = 591751049;
keys[2] = 878082192;
this.update_keys=function(c){
keys[0]=crc32.crc32(keys[0],c);
keys[1]=(((keys[1]+(keys[0]&0xff))*0x08088405+1)& 0xffffffff) >>>0;
keys[2] = crc32.crc32(keys[2], keys[1] >>> 24);
};
键[1]中间计算可能更多79753741930607500。
存在对nodejs的通用解决方案,浏览器可以使用64位整数吗?
答案 0 :(得分:3)
由于问题标记为node.js,因此可以使用node-bigint模块。
使用
安装npm install bigint
用法:
var bigint = require('bigint');
console.log(bigint('79753741930607500').add(3)); //<BigInt 79753741930607503>
虽然请注意,但是无法将其保留为整数,它将作为bigint字符串返回,或者您可以使用方法.toString()
将其转换为字符串。如果您尝试将其作为整数返回,则会丢失精度或返回无穷大。