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.
Please take two minutes to fill out our short survey.
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
構文
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); // 8
Math.imul(-1, 8); // -8
Math.imul(-2, -2); // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-math.imul |