Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Math.imul()

该特性处于 ECMAScript 6 规范草案中,目前的实现在未来可能会发生微调,请谨慎使用。

概述

该函数返回两个参数的类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);
}

浏览器兼容性

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) ? ? ? ?

 

文档标签和贡献者

 此页面的贡献者: teoli, ziyunfei
 最后编辑者: teoli,