6月22日(水)1コマ目

今日、やったこと

  • [確認テスト]浮動小数点形式
  • ビットシフト

今日のホワイトボード

論理シフトと算術シフト

右シフトには論理シフトと算術シフトがあります。

どちらを使うかはシフト対象ビット列が符号あり、符号なしで決まります。

  • 符号なしビット列なら論理シフト(無条件に0を入れる)
  • 符号ありビット列なら算術シフト(符号ビットと同じ値を入れる)

図 論理シフトと算術シフトの使い分け


演習問題

問2

符号ありビット列なので、右シフトは算術シフト。

図 問2


問3 

16進数1ケタは2進数4ビット。

  • 16進数=>2進数なら、16進数1ケタを4ビットの2進数に変換。
  • 2進数=>16進数なら、2進数4ビットを1ケタの16進数に変換。

図 問3


左シフトは

結論から言えば、掛け算

10進数で考えてみると以下のとおり。

図 左シフトは

一般化すると、

左シフトは ×基数シフトしたビット数


右シフトは

結論から言えば、割り算

10進数で考えると以下のとおり。

図 右シフト

一般化すると、

右シフトは ÷基数シフトしたビット数


コンピュータの四則演算

下表のように計算をしている。

演算実現方法
加算器回路で計算
負数を2の補数表現にして、加算器で加算
× 左シフト
÷ 右シフト


次回は

テストはしません。

ビットシフトの続きをやります。