算術シフト 【arithmetic shift】

概要

算術シフト(arithmetic shift)とは、ビットを指定した数だけ右または左にずらすビットシフト(bit shift)操作のうち、正負の符号ビットの存在を考慮するもの。シフト演算を算術的にうことができる。

コンピュータで負数も表現できる符号付き整数ビットで表す場合、最上位ビット符号ビットとして、これが「0」なら0または正、「1」なら負という規則での正負を表す。

ビットシフト操作はビットを右または左に指定の数だけ移動する操作だが、算術シフトでは最上位ビットは変更せず、2番目から最下位ビットまでを左右に移動する。左シフトの場合は下位側に「0」を、右シフトの場合は上位側に符号ビットを補充する。

例えば、「11100111」(-25)を左に2ビットシフトすると、最上位の「1」は変わらず、続く上位ビットが2桁ずつ左に移動して「00111」となり、末尾に「0」が2桁補充されて「10011100」(-100)となる。正の数の2ビット左シフトと同じように算術的に元の数の4倍となっている。

また、「10101000」(-88)を右に2ビットシフトすると、やはり最上位の「1」は変わらず、下位側が2桁ずつ右に移動して「01010」となり、空いた上位側に符号ビットの「1」が2桁補充されて「111010101」(-22)となる。正の数の2ビット右シフトと同じように算術的に元の数の1/4倍となっている。

一方、ビットシフト操作のうち符号ビットを考慮せず全ビット一律に左右に移動する操作のことを「論理シフト」(logical shift)という。ビット符号付き整数を表す場合には負数の算術的な計算ができないが、正の数しか扱わない符号なし整数や数値以外のデータシフト操作に適している。

(2022.12.14更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる