このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Math.imul()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

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

試してみましょう

console.log(Math.imul(3, 4));
// 予想される結果: 12

console.log(Math.imul(-5, 12));
// 予想される結果: -60

console.log(Math.imul(0xffffffff, 5));
// 予想される結果: -5

console.log(Math.imul(0xfffffffe, 5));
// 予想される結果: -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

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-math.imul

ブラウザーの互換性

関連情報