Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Left shift (<<)演算子の使い方

Left shift (<<)演算子の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Left shift (<<)演算子は、指定された数値のビットを左方向にシフトする操作を実行する演算子です。この演算子は、二つのオペランドを取ります。左のオペランド(x)はシフトされる数値、右のオペランド(y)はシフトするビット数を表します。

具体的には、xの二進数表現をyビット分だけ左へ移動させます。このとき、右側に空いたビット位置にはゼロ(0)が埋められます。一方、左端からはみ出したビットは破棄されます。JavaScriptのビット演算子は、オペランドを内部的に32ビット符号付き整数として扱い、演算結果も32ビット符号付き整数として返します。

この演算子は、一般的に、x2y乗を掛け算するのと同様の効果を持ちます。例えば、5 << 15 * (2^1) = 10となり、5 << 25 * (2^2) = 20となります。正の整数に対しては、掛け算よりも高速に処理できる場合があるため、パフォーマンスが求められる場面や、ビットフラグの操作などで利用されることがあります。

ただし、数値が32ビットの範囲を超えてしまう場合や負の数の場合には、単純な掛け算とは異なる結果になることがあるため注意が必要です。特に、大きい数値をシフトした場合、意図しない値になる可能性があるため、その特性を理解して使用することが重要です。ビット演算は、低レベルなデータ操作を行う際に強力なツールとなります。

公式リファレンス: Left shift (<<)

構文(syntax)

1const originalNumber = 5; // 2進数で 00000101
2const shiftAmount = 2;
3const shiftedNumber = originalNumber << shiftAmount; // 00000101 を左に2ビットシフトすると 00010100 (10進数で 20)

引数(parameters)

引数なし

引数はありません

戻り値(return)

number

指定された数値を左にビットシフトした結果を数値型で返します。

関連コンテンツ

関連プログラミング言語