--- title: Math.imul() slug: Web/JavaScript/Reference/Global_Objects/Math/imul translation_of: Web/JavaScript/Reference/Global_Objects/Math/imul original_slug: Web/JavaScript/Referencia/Objectes_globals/Math/imul ---
{{JSRef}}

La funció Math.imul() retorna el resultat de la multiplicació de 32 bits similar a la de C dels dos paràmetres.

Sintaxi

Math.imul(a, b)

Paràmetres

a
Primer nombre.
b
Segon nombre.

Descripció

Math.imul() permet una multiplicació ràpida de nombres sencers de 32 bits amb una semàtica similar a la de C. Aquesta característica esdevé útil per a projectes com Emscripten. Com que imul() és un mètode estàtic de Math, sempre s'utilitza com Math.imul() en comptes de com un mètode d'un objecte Math creat (Math no és un constructor).

Exemples

Utilitzar Math.imul()

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

Aquesta funció pot ser emulada mitjançant la següent funció:

Math.imul = Math.imul || function(a, b) {
  var ah = (a >>> 16) & 0xffff;
  var al = a & 0xffff;
  var bh = (b >>> 16) & 0xffff;
  var bl = b & 0xffff;
  // el desplaçament de zero posicions solventa el signe a la part més significativa
  // el |0 del final converteix el valor sense signe en un valor amb signe
  return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
};

Especificacions

Especificació Estat Comentaris
{{SpecName('ES6', '#sec-math.imul', 'Math.imul')}} {{Spec2('ES6')}} Definició inicial.

Compatibilitat amb navegadors

{{CompatibilityTable}}
Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic {{CompatChrome("28")}} {{CompatGeckoDesktop("20")}} {{CompatUnknown}} {{CompatOpera("16")}} {{CompatSafari("7")}}
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile("20")}} {{CompatUnknown}} {{CompatUnknown}} 7