5月19日(水)1コマ目

今日、やったこと

  • なんで2の補数で引き算ができるの?
  • 浮動小数点表現

今日のホワイトボード

なんで2の補数で引き算ができるの?

2進数において、2の補数は足すとケタ上がりする最小の数。

10進数3を4ビットの2進数にすると、0011。

この0011の2の補数は1101だが、

 10000 - 0011

で表すこともできる。

10000は

 4ビットの最大値は      1111

 +1するとケタ上がりして、 10000

から、4ビットからケタ上がりして5ビットになった最小の数。

その10000から0011(10進数での3)を引くことで、3の2の補数になる。

違う言い方をすると、0011(10進数の3)に2の補数10000-0011を足すと、10000になる。ケタ上がりして5ケタになっている。

4ビットの計算では、10000は下位4ビットの0000だけが計算対象になり、最上位ビットの1は捨てられる。 そのため、10000は足そうが、引こうが全く影響のない値。ここがポイント。

よって、5-3は

 =5+(ー3)

4ビットの2進数でこの計算をしてみると、

5を2進数にすると0101、-3は1101(先ほどの10000 - 0011)。

計算式は

 0101 + (10000 - 0011) = 0101 + 10000 - 0011

になる。4ビットの計算なので+10000は結果に影響がないため、

 0101 - 0011

になる。0101は10進数にすると5、0011は3。

計算式を10進数に置き換えると

 5 - 3

になっている。負の値を絶対値の2の補数で表してもちゃんと元の計算をしていることになる。

図 2進数の2の補数、10進数の10の補数

図 2進数0011の2の補数は10000-0011

図 負の数を絶対値の2の補数で表して計算式を書くと

固定小数点と浮動小数点

固定小数点はxxケタ目とxx+1ケタ目の間に小数点がある、小数点の位置が固定された表現方法。
浮動小数点は小数点の位置が変わる表現方法。小数点の位置を変えるためにx10nをする。
図 固定小数点形式と浮動小数点形式

正規化

浮動小数点形式の2進数にするには

 1.xxxx × 2n

に変換する必要がある。
仮数部(1.xxxx)は1以上2未満にする。これが正規化。
小数点の位置を変えるとx2nのnが変わるので注意。
図 正規化

次回は

小数を浮動小数点形式の2進数に変換する演習をやってもらいました。
次回は演習の解説+浮動小数点形式の2進数を10進数にするをやります。
ということで、次回はテストはやりません。

コメント

このブログの人気の投稿

4月22日(木)1コマ目

6月23日(水)1コマ目