是否有快速而简单的方法对64位整数进行“%”操作,并以“string”形式给出(例如“1bed658e4cbba3a7”)?
我知道Google Closure Library有这样的功能,但我不想使用任何外部库,而且在内部它可以作为三个操作(除法,乘法和减法),并且似乎不是最优的。
加: 问题是JavaScript无法在不失去精度的情况下处理64位整数。有关详细信息,请参阅此question
答案 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位,那么你将需要寻找其他方法。