Math.imul()
Khác với các phép nhân thông thường, Math.imul() trả về kết quả của phép nhân 32-bit kiểu C của hai tham số. Hàm này quan trọng trong các dự án như Emscripten.
Cú pháp
var product = Math.imul(a, b);
Ví dụ 1: Số nguyên thông thường
<html> <body> <script> document.write(Math.imul(3, 4)); document.write("</br>"); document.write(Math.imul(-3, 4)); </script> </body> </html>
Kết quả
12 -12
Ví dụ 2: Giá trị 32-bit kiểu C
<html> <body> <script> document.write(Math.imul(0xffffffff, 4)); document.write("</br>"); document.write(Math.imul(0xfffffffe, 4)); </script> </body> </html>
Kết quả
-4 -8
Giải thích: JavaScript dùng số dấu phẩy động 64-bit (IEEE 754), nhưng Math.imul() thực hiện nhân 32-bit signed integer với overflow wrapping (tương tự C/C++). Ví dụ: 0xffffffff là -1 trong 32-bit signed, nhân 4 = -4. Dùng cho WebAssembly, asm.js, xử lý bitwise hiệu năng cao.