小编ant*_*eme的帖子

有没有办法在Javascript中正确地乘以两个32位整数?

有没有办法在Javascript中正确地乘以两个32位整数?

当我从C中尝试使用时,long long我得到了这个:

printf("0x%llx * %d = %llx\n", 0x4d98ee96ULL, 1812433253,
      0x4d98ee96ULL * 1812433253);
==> 0x4d98ee96 * 1812433253 = 20becd7b431e672e
Run Code Online (Sandbox Code Playgroud)

但是从Javascript来看结果是不同的:

x = 0x4d98ee97 * 1812433253;
print("0x4d98ee97 * 1812433253 = " + x.toString(16));
==> 0x4d98ee97 * 1812433253 = 20becd7baf25f000
Run Code Online (Sandbox Code Playgroud)

尾随零使我怀疑Javascript具有奇怪限制的整数分辨率,介于32位和64位之间.

有没有办法得到正确的答案?(如果重要的话,我在x86_64 Fedora 15上使用Mozilla js-1.8.5.)

javascript 64-bit

6
推荐指数
3
解决办法
2754
查看次数

标签 统计

64-bit ×1

javascript ×1