このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
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 2015年7月.
Math.imul() は静的メソッドで、2 つの引数で C 言語風の 32 ビット乗算を行った結果を返します。
In this article
試してみましょう
console.log(Math.imul(3, 4));// 予想される結果: 12console.log(Math.imul(-5, 12));// 予想される結果: -60console.log(Math.imul(0xffffffff, 5));// 予想される結果: -5console.log(Math.imul(0xfffffffe, 5));// 予想される結果: -10構文
Math.imul(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() の使用
Math.imul(2, 4); // 8Math.imul(-1, 8); // -8Math.imul(-2, -2); // 4Math.imul(0xffffffff, 5); // -5Math.imul(0xfffffffe, 5); // -10仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-math.imul> |