5月1日(水)1コマ目

今日、やったこと

  • [確認テスト]負数の2進数<=>10進数変換
  • 浮動小数点形式
  • ビットシフト

今日のホワイトボード

浮動小数点形式

前回は10進数の小数を浮動小数点形式の2進数へ変換しました。

今日は逆パターン(浮動小数点形式の2進数を10進数へ)をしました。

ポイントは

  • 指数部のバイアス値
  • 可数部は正規化した可数部の小数点以下

です。

図 練習問題 問6
図 練習問題 問7

ビットシフト

ビットシフトはビット列を左右にずらすこと。
ずらすことで生まれる空きビットになにを入れるかがポイント。

左シフト

指定ビット数だけ左にずらす。
右側にできた空きビットには0をいれる。
図 左シフト

右シフト

指定ビット数だけ右にずらす。
左側にできた空きビットに何をいれるかで論理シフト、算術シフトに分かれる。

右シフト(論理シフト)

左側にできた空きビットに0をいれる。
図 右シフト(論理シフト)
シフト対象が符号なしの場合に利用。

右シフト(算術シフト)

左側にできた空きビットには符号ビットと同じ値をいれる。
図 右シフト(算術シフト)
シフト対象が符号ありの場合に利用。

左シフトはかけ算

m桁左にシフト = ×Nm
Nは基数
図 左シフトはかけ算

右シフトはわり算

m桁右にシフト = ÷Nm
Nは基数
図 右シフトはわり算

例1 符号なしの011010(10進数では26)を右に2ビットシフト

符号なしなので、論理シフト。シフト後は 000110。
10進数にすると6。
右に2ビットシフト=÷22
よって、26÷4をしたことになる。答えは6(小数点以下はなし)

例2 符号なしの101010(10進数では42)を右に2ビットシフト

符号なしなので、論理シフト。シフト後は 001010。
10進数にすると10。
右に2ビットシフト=÷22
よって、42÷4をしたことになる。答えは10(小数点以下はなし)

例3 符号ありの011010(10進数では26)を右に2ビットシフト

符号ありなので、算術シフト。シフト後は 000110。
10進数にすると6。
右に2ビットシフト=÷22
よって、26÷4をしたことになる。答えは6(小数点以下はなし)

例4 符号ありの101010(10進数では-22)を右に2ビットシフト

符号ありなので、算術シフト。シフト後は 111010。
10進数にすると6。
右に2ビットシフト=÷22
よって、-22÷4をしたことになる。答えは6(小数点以下はなし)

※小数点以下切り捨て
小さいほうの整数になる。
2.4 -> 2
-2.4 -> -3

次回は

浮動小数点形式のテストをします。





このブログの人気の投稿

6月7日(金)1コマ目

6月14日(金)1コマ目

5月31日(金)1コマ目