投稿

5月, 2021の投稿を表示しています

5月26日(水)1コマ目

イメージ
今日、やったこと 浮動小数点形式の2進数 今日のホワイトボード 先週配布した練習問題の解説をしました。 問1 正規化は  仮数部が1.xxxになるように小数点の位置を変える です。 小数点の位置は 変更前 1.xxxに変更すると ポイント 1100.01 1.1001x2 3 小数点を左(+)に 3 ケタ移動 0.0011 1.1x2 - 3 小数点を右( - )に 3 ケタ移動 です。 図 問1 0.765を正規化 問2 問1と同じですが、正規化する際、小数点の位置が右方向へ移動するため、2 -n になる点に注意。 図 問2 0.375を正規化 問4 負の値です。符号のビットが1になる点に注意。 図 問4 -7.5を正規化、2進数へ 問6 浮動小数点形式の2進数を10進数へ変換です。 以下に従って、ビット列を切り分けていけばOKです。 1ビット目が符号 2~9ビット目までが指数部。ただし、バイアス値127を加算済み。 10ビット目以降が仮数部。ただし、実際の仮数部の小数点以下。 図 問6 浮動小数点形式の2進数を10進数へ なぜ、バイアス値は127? 指数は負の値になることもある。 負の値なら、指数部の最上位ビットは1。 正の値なら、指数部の最上位ビットは0。 単純にビット列を比較すると、負の値のほうが大きい値になる。 そこで、バイアス値を足すことで、指数が負の値なら、指数部の最上位ビットを0にしている。 ようは、浮動小数点形式の2進数の大小関係をビット列の単純な比較で判断したいため。 図 バイアス値は127 次回は 浮動小数点形式の2進数のテストします。

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 ...

5月12日(水)1コマ目

イメージ
今日、やったこと 負数は絶対値の2の補数で表す 今日のホワイトボード なぜ、補数? コンピュータでは負数をその絶対値の2の補数で表しています。 そうすると、減算が加算でできるためです。 図 なぜ補数? 負数を絶対値の2の補数で表す場合 負の10進数を2進数へ変換する 手順は以下のとおりです。 絶対値とは0からどれだけ離れているかです。要は符号をとった値です。 図 負の10進数を2進数へ 2進数を10進数へ変換する 手順は以下のとおりです。 最上位ビットによって、正負が決まる点にご注意を。   図 2進数を10進数へ(負数の場合) 減算を加算回路でする コンピュータで演算を行うには回路が必要です。 負数は2の補数で表すことで、加算・減算それぞれの回路を作らずに、加算回路だけでOKになります。 図 コンピュータでの減算 次回、負数は絶対値の2の補数で表す場合の基数変換のテストをします。

5月6日(木)1コマ目

イメージ
今日、やったこと 基数変換(10進数の小数をN進数へ)のテスト 補数 今日のホワイトボード 前回は10進数での基数の補数(10の補数)、減基数の補数(9の補数)をやりました。 今日は、2進数での基数の補数(2の補数)、減基数の補数(1の補数)です。 が、その前に2進数での足し算、引き算について話をしました。 2進数の足し算 ポイントは 2で繰り上がる 各ケタの数は0か1 です。ついつい勢いで2と書いてしまう人が毎年います。 図 2進数の足し算 2進数の引き算 10進数と同じように、引かれる数のほうが小さければ、上のケタから1つ借りてきます。 10 進では10でケタ上がりするため、 上のケタから借りてくる のは 10 です。 2 進数では2でケタ上がりするため、 上のケタから借りてくる のは 2 です。 図 2進数の引き算 2進数での補数 簡単なのは減基数の補数(1の補数)。ビット反転すればOK。 基数の補数(2の補数)は1の補数+1で。 図 2進数での補数 8進数の場合 足し算は8でケタ上がりすることがポイント。 減基数の補数(7の補数)は、1ケタなら足すと7になる値。2ケタなら足すと77になる値。3ケタなら足すと777になる値。 基数の補数(8の補数)は7の補数+1。 図 8進数での足し算、補数 毎度毎度ですいませんが、次回、補数のテストをします。