阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS 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);
      }
      
      
      目录
      目录