ビットを移動させること。
下記の3通りがある。(以下、符号付8ビット整数をとする。)
ビットをそのまま移動させること。
桁を超えたものは消去する。
93(2進法で0101 1101)を左に3回論理シフトすると-24(2進法で1110 1000)になる。(上位で桁を超えてしまった「010」は消去)
0101 1101←←← 010 1110 1*** 消去 1110 1000
最上位ビット(符号ビット)を除いて移動させること。
桁を超えたものは消去する。
93(2進法で0101 1101)を左に3回算術シフトすると104(2進法で0110 1000)になる。(上位で桁を超えてしまった「101」は消去)
0 101 1101←←← 0 (010) 110 1*** 0 消去 110 1000
ビットを移動し、桁を超えてしまったものを反対側に繰り上げて移動すること。
93(2進法で0101 1101)を左に3回巡回シフトすると-26(2進法で1110 1010)になる。(上位で桁を超えてしまった「010」を下位に繰り上げ)
0101 1101←←← 010 1110 1*** → 1110 1010 *に繰り上げ