シフト【shift】
Shiftキー
キーボードの「Shiftキー」は、押しながら他のキーを入力することで通常とは異なる文字を入力するための修飾キーである。英字キーでは大文字、数字キーでは記号が入力される。この仕組みはタイプライターで活字の位置をずらして大文字と小文字を切り替えていた構造に由来する。
ビットシフト
論理回路やプログラミングの分野では、ビット列を指定した桁数だけ左右に移動させる操作を「ビットシフト」または「シフト演算」という。ビット列が符号なし整数の場合、左シフトは2の累乗倍の乗算、右シフトは2の累乗による除算に相当し、専用のシフト命令によって高速に実行できる。
符号付き整数では最上位桁が符号ビットとなるため、これを無視して全体をシフトさせる「論理シフト」と、符号ビットを固定して残りのビット列だけ移動させる「算術シフト」を目的に応じて使い分ける。あふれたビットを反対側へ移して循環させる「ローテート」というバリエーションもある。乗除算命令より高速に処理できる場合があることから、数値演算の最適化にも利用される。
配列のshiftメソッド
配列を扱うプログラミング言語の中には、配列の先頭要素を取り除いてその値を返す「shift」という関数やメソッドを備えるものがある。この操作を行うと、2番目以降の要素が前方へ詰められ、配列全体の長さが一つ減る。反対に、配列の先頭に新しい要素を追加する関数やメソッドは「unshift」と呼ばれ、追加された要素の分だけ既存の要素は後方へずれる。これらは配列の末尾を操作する「push」や「pop」と組み合わせて使われることが多い。
(2026.6.27更新)
