算術シフト
読み:さんじゅつシフト
外語:arithmetic shift
ビット演算の一種であるビットシフトの方法の一つで、単純にビット列をシフトすること。
概要
算術シフトは、2の補数形式の符号付き2進数を扱うビットシフトである。最上位ビットは常に符号ビットとなっている。
左シフトでは、あふれたビットは単に消える。プロセッサーによっては、その内容をキャリーフラグ等に格納するものがある。
右シフトでは、空いたビット(最上位ビット)には符号ビットと同じ内容が格納される。
特徴
最上位ビットを符号に見立て、右にnビットシフトしたとき1/(1<<n)倍した数となるように、空いた最上位ビットに元の最上位ビットをコピーするシフト方式。
左にシフトする場合は論理シフトと動作が変わらない。
右に算術シフトすれば符号付きで1/2、左に算術シフトすれば符号付きで2倍となる。
再検索