【JavaScript ECMAScript】Left shift assignment (<<=)演算子の使い方
Left shift assignment (<<=)演算子の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Left shift assignment (<<=)関数は、左オペランドの数値のビットを指定された数だけ左にシフトし、その結果を左オペランドに再代入する複合代入演算子です。この演算子は、x <<= y という形式で使用され、これは x = x << y と完全に同じ意味を持ちます。
具体的には、変数 x が保持する数値のバイナリ表現を、数値 y で指定されたビット数だけ左方向に移動させます。左にシフトする際、新たに空いた右端のビット位置には自動的にゼロが埋められます。また、数値の最上位ビット(符号ビットを含む)もシフトの対象となり、ビット列全体が左に移動します。この操作は、実質的に左オペランドの値を2のy乗倍することに相当しますが、数値の符号は保持されます。
例えば、let value = 3; と定義された状態で value <<= 2; を実行した場合を考えます。元の値 3 はバイナリで 0000...0011 です。これを2ビット左にシフトすると 0000...1100 となり、これは十進数で 12 に相当します。したがって、value の値は 12 に更新されます。この演算子は主に整数値に対して使用されますが、JavaScriptでは浮動小数点数に対して使用された場合、内部的に32ビット整数に変換されてからビットシフト演算が行われます。ビット単位の操作を簡潔に記述し、変数を効率的に更新するために利用される機能です。
構文(syntax)
1let operand1 = 5; 2operand1 <<= 2;
引数(parameters)
引数なし
引数はありません
戻り値(return)
Number
左ビットシフト代入演算子 (<<=) は、左辺のオペランドのビットを右辺のオペランドで指定された数だけ左にシフトし、その結果を左辺のオペランドに代入した値を返します。