Math.imul()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Math.imul() は静的メソッドで、2 つの引数で C 言語風の 32 ビット乗算を行った結果を返します。

試してみましょう

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

構文

js
Math.imul(a, b)

引数

a

第一の数値。

b

第二の数値。

返値

与えられた引数で C 言語風の 32 ビット乗算を行った結果です。

解説

Math.imul() で C 言語と同様のの意味を持った 32 ビット乗算を行うことができます。この機能は Emscripten などのプロジェクトに有効です。

imul()Math の静的メソッドなので、常に Math.imul() として使用し、自分で Math オブジェクトを生成してそのメソッドとして使用しないでください。 (Math にはコンストラクターがありません)。

JavaScript の通常の浮動小数点数を imul() で使用すると、パフォーマンスが低下します。これは、乗算のために浮動小数点数から整数への変換、そして乗算された整数を再び浮動小数点数に変換する処理にコストがかかるためです。しかし、 asm.js では、 JIT オプティマイザーが JavaScript でより確実に整数を使用できるようになり、内部的に整数として格納された 2 つの数値の乗算(asm.js でのみ可能)を imul() で行うことで、より高いパフォーマンスが得られる可能性があります。

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

仕様書

Specification
ECMAScript® 2025 Language Specification
# sec-math.imul

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
imul

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報