JavaScript の整数除算
このチュートリアルでは、JavaScript の Math
ライブラリとビット演算子を使用して、商と除算の余りを取得する方法について説明します。
JavaScript の Math
ライブラリを使用して、整数除算の商と剰余を取得する
JavaScript では、2つの変数を簡単に除算でき、結果は浮動小数点数になりますが、除算の商と剰余を取得する場合は、Math
ライブラリを使用して多くの関数を提供できます。たとえば、浮動小数点数を整数に変換する Math.floor()
または Math.trunc()
関数を使用して除算の商を取得でき、余りを取得するには、 %
キャラクター。たとえば、13 の商と余りを 5 で割ったものを見つけましょう。以下のコードを参照してください。
var a = 13;
var b = 5;
var quo = Math.floor(a / b);
var rem = a % b;
console.log('Quotient = ', quo, 'Remainder = ', rem);
出力:
Quotient = 2 Remainder = 3
数が多すぎると、Math
ライブラリが失敗することに注意してください。Math.floor()
関数と比較して多数を処理できる Math.trunc()
関数を使用することもできます。Math.floor()
関数は負の数の場合は失敗しますが、Math.trunc()
は負の数の場合は失敗しません。
JavaScript のビット演算子を使用して整数除算の商と剰余を取得する
JavaScript では、ビット演算子を使用して、除算の商と剰余を取得できます。たとえば、ビット単位の NOT
~~またはビット単位の
OR|0
を使用して除算の商を取得できます。これは、浮動小数点数を整数に変換します。そして、余りを取得するために、%
文字を使用できます。たとえば、13 の商と余りを 5 で割ったものを見つけましょう。以下のコードを参照してください。
var a = 13;
var b = 5;
var quo = ~~(a / b);
var rem = a % b;
console.log('Quotient = ', quo, 'Remainder = ', rem);
出力:
Quotient = 2 Remainder = 3
ご覧のとおり、出力は上記の方法と同じです。ビット単位の演算子のパフォーマンスは、Math
ライブラリと比較して優れていますが、多数を処理する能力は低くなります。したがって、数値が小さい場合は、ビット演算子を使用できます。それ以外の場合は、Math
ライブラリを使用してください。ビット演算子は負の数も処理できます。parseInt()
関数を使用して、浮動小数点数を整数に変換することもできます。関数を使用したくない場合は、以下に示すように、剰余演算子%
を使用して簡単な数式を使用できます。
var a = 13;
var b = 5;
var rem = a % b;
var quo = (a - rem) / b;
console.log('Quotient = ', quo, 'Remainder = ', rem);
出力:
Quotient = 2 Remainder = 3
ご覧のとおり、出力は上記の方法と同じです。