Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Math : méthode statique imul()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode statique Math.imul() retourne le résultat de la multiplication sur 32 bits à la manière du langage C des deux paramètres.

Exemple interactif

console.log(Math.imul(3, 4));
// Sortie attendue : 12

console.log(Math.imul(-5, 12));
// Sortie attendue : -60

console.log(Math.imul(0xffffffff, 5));
// Sortie attendue : -5

console.log(Math.imul(0xfffffffe, 5));
// Sortie attendue : -10

Syntaxe

js
Math.imul(a, b)

Paramètres

a

Le premier nombre.

b

Le second nombre.

Valeur de retour

Le résultat de la multiplication sur 32 bits des valeurs passées en argument (comme en C).

Description

La méthode Math.imul() permet une multiplication d'entiers sur 32 bits avec une sémantique proche du langage C. Cette fonctionnalité est utile pour des projets comme Emscripten (angl.).

Parce que imul() est une méthode statique de Math, il faut toujours l'utiliser sous la forme Math.imul(), plutôt que comme méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).

Si vous utilisez des nombres flottants JavaScript normaux dans imul(), vous constatez une dégradation des performances. Cela est dû à la coûteuse conversion d'un flottant en entier pour la multiplication, puis à la conversion de l'entier multiplié en flottant. Cependant, avec asm.js, qui permet aux optimiseurs JIT d'utiliser plus efficacement les entiers en JavaScript, multiplier deux nombres stockés en interne en tant qu'entiers (ce qui n'est possible qu'avec asm.js) avec imul() peut être potentiellement plus performant.

Exemples

Utiliser Math.imul()

js
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

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-math.imul

Compatibilité des navigateurs

Voir aussi