Math.imul()

概述

该函数返回两个参数的类C的32位整数乘法运算的运算结果.

语法

Math.imul(a, b)

参数

a
被乘数.
b
乘数.

描述

Math.imul可以进行快速的,类C语义的32位整数乘法.该特性对于一些项目比如Emscripten很有用.

例子

Math.imul(2, 4) // 8
Math.imul(-1, 8) // -8
Math.imul(-2, -2) // 4
Math.imul(0xffffffff, 5) //-5
Math.imul(0xfffffffe, 5) //-10

Polyfill

下面的JavaScript代码可以实现该函数:

function imul(a, b)
{
        var ah  = (a >>> 16) & 0xffff;
        var al = a & 0xffff;
        var bh  = (b >>> 16) & 0xffff;
        var bl = b & 0xffff;
        // 右移0位可以修复高位的符号位
        return (al * bl) + (((ah*bl+al*bh)<<16)>>>0);
}

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Firefox (Gecko) Chrome Internet Explorer Opera Safari
Basic support 20 (20) ? ? ? ?
Feature Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
Basic support 20.0 (20) ? ? ? ?