用語チェック
シフト演算 → 指定したビット分だけを右、左にずらす演算(乗除算にめっちゃ使われる)
論理シフト → ビット全体をずらす。(符号を考慮しない)
算術シフト → 最上位のビットを符号とみなして、それ以降のビットをずらす。(符号を考慮する)
剰余演算 → 除算のあまりをとる演算
シフト演算
論理シフト
※符号×
左シフト

どちらも「1」が溢れない限り正常に倍になっていく
右シフト

算術シフト
※符号〇
左シフト

符号関係なく「0」を補う。
左シフトする際、
正または0の場合 →「1」が溢れないこと
負の場合 →「0」が溢れないこと
で正確に倍になっていく。
右シフト

符号を固定して、補うときは符号と同じものを補う。
右シフトをする際、
「1」が溢れないこと
で正しく倍になっていく。
少し複雑なため、とりあえず溢れなければ問題なく計算されていくんだな
と考える良い
練習問題 シフトであふれることはないこととする。
答え:1111001000、、110100、111、、
剰余演算
少し難しそうに見えるが、割った後の余りのことである。
aをbで割ったあまりの表現方法は、a%bもしくはmod(a,b)と表すことができる。
また、シフト演算のときに、あふれ出た桁は余りとして考えることができる。