シフト演算の分類の1つで、ビット列のすべてのビットを対象にして行われるものをいいます。
左方向に論理シフトする場合、空いた右端のビットには 0
が入ります。元のビット列が 11000111
だとして、左方向に
3ビット論理シフトすると 00111000
になります。
右方向に論理シフトする場合は、空いた左端のビットには 0
が入ります。元のビット列が 11000111
だとして、右方向に
3ビット論理シフトすると 00011000
になります。
論理シフトに対して、最上位ビットを無視して、残りのビットだけをシフトするものを算術シフトといいます。算術シフトで右シフトする場合、空いた部分には、最上位ビットと同じものが入ります。さきほどと同じ例を算術シフトに置き換えると、左シフトの例では
10111000
になり、右シフトの例では 11111000
になります。いずれも最上位ビットには変化がありません。もし、最上位ビットが符号をあらわす符号ビットであるとしたら、符号を変化させずに、シフト演算が行えていることになります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |