編譯使用Emscripten此代碼:如何使用JavaScript模擬x86無符號32位整數乘法?
#include <stdio.h>
int main() {
unsigned long d1 = 0x847c9b5d;
unsigned long q = 0x549530e1;
printf("%lu\n", d1*q);
return 0;
}
收益率(使用-g
):
$d1=-2072208547; //@line 3 "minusmul.c"
$q=1419063521; //@line 4 "minusmul.c"
var $2=$d1; //@line 5 "minusmul.c"
var $3=$q; //@line 5 "minusmul.c"
var $4=((($2)*($3))|0); //@line 5 "minusmul.c"
執行此使用js
(?SpiderMonkey的,我相信)或node
,我得到的結果3217488896
。執行本地可執行文件(使用GCC編譯),我得到3217489085
。如何使用JavaScript模擬x86無符號32位整數乘法?
重複http://stackoverflow.com/questions/6232939/is-there-a-way-to-correctly-multiply-two-32-bit-integers-in-javascript/6422061 –
我發佈了一個答案[重複問題](http://stackoverflow.com/questions/6232939/is-there-a-way-to-correctly-multiply-two-32-bit-integers-in-javascript/6422061)。 –