Spec-Zone.ru › JavaScript

Math.imul()

Baseline Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

Статический метод Math.imul() возвращает результат 32-битного умножения двух параметров, как в языке C.

Попробуйте

console.log(Math.imul(3, 4));
// Expected output: 12

console.log(Math.imul(-5, 12));
// Expected output: -60

console.log(Math.imul(0xffffffff, 5));
// Expected output: -5

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

Синтаксис

Math.imul(a, b)

Параметры

a
Первое число.
b
Второе число.

Возвращаемое значение

Результат 32-битного умножения предоставленных аргументов, как в языке C.

Описание

Math.imul() позволяет выполнять 32-битное умножение целых чисел с семантикой, схожей с языком C. Эта функция полезна для таких проектов, как Emscripten.

Поскольку imul() является статическим методом Math, вы всегда используете его как Math.imul(), а не как метод созданного вами объекта Math (Math не является конструктором).

Если вы используете обычные числа с плавающей запятой JavaScript в imul(), вы столкнетесь со снижением производительности. Это связано с затратным преобразованием из числа с плавающей запятой в целое число для умножения, а затем обратно из целого числа в число с плавающей запятой. Однако с asm.js, который позволяет JIT-оптимизаторам более уверенно использовать целые числа в JavaScript, умножение двух чисел, хранящихся внутри как целые числа (что возможно только с asm.js), с помощью imul() может быть потенциально более производительным.

Примеры

Использование 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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-math.imul

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
imul
28
12
20
16
7
28
20
15
7
1.5
4.4
7
1.0.0
1.0
0.12.0

См. также

  • Polyfill для Math.imul в core-js
  • Polyfill для Math.imul от es-shims
  • Emscripten в Википедии

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API