如何计算Javascript中以字符串形式给出的64位整数的除数余数

时间:2012-11-12 16:04:17

标签: javascript integer modulo

是否有快速而简单的方法对64位整数进行“%”操作,并以“string”形式给出(例如“1bed658e4cbba3a7”)?

我知道Google Closure Library有这样的功能,但我不想使用任何外部库,而且在内部它可以作为三个操作(除法,乘法和减法),并且似乎不是最优的。

: 问题是JavaScript无法在不失去精度的情况下处理64位整数。有关详细信息,请参阅此question

1 个答案:

答案 0 :(得分:2)

如果在右侧操作数上有上限,则可以将64位int分成两部分,并从中计算模数。 (这是3%的操作,我不知道这对你的目的来说是否足够快。)

例如,如果要计算x%c,c< 2 ^ 32,然后你可以将x分成两部分a和b,并计算:

(a * 2^32 + b) % c = (((a % c)* (2^32 % c)) + b) % c

这取决于c很小。如果它也接近64位,那么你将需要寻找其他方法。