論理シフト | Programming Place Plus 用語集

トップページ用語集

名称

解説

シフト演算の分類の1つで、ビット列のすべてのビットを対象にして行われるものをいいます。

左方向に論理シフトする場合、空いた右端のビットには 0 が入ります。元のビット列が 11000111 だとして、左方向に 3ビット論理シフトすると 00111000 になります。

右方向に論理シフトする場合は、空いた左端のビットには 0 が入ります。元のビット列が 11000111 だとして、右方向に 3ビット論理シフトすると 00011000 になります。


論理シフトに対して、最上位ビットを無視して、残りのビットだけをシフトするものを算術シフトといいます。算術シフトで右シフトする場合、空いた部分には、最上位ビットと同じものが入ります。さきほどと同じ例を算術シフトに置き換えると、左シフトの例では 10111000 になり、右シフトの例では 11111000 になります。いずれも最上位ビットには変化がありません。もし、最上位ビットが符号をあらわす符号ビットであるとしたら、符号を変化させずに、シフト演算が行えていることになります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る