• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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);
    }
    

    上篇:Math.clz32()

    下篇:Math.sin()