5月25日(水)1コマ目

今日、やったこと

[確認テスト]負の10進数=>2進数

2進数=>10進数(負数あり)

今日のホワイトボード

2進数を10進数へ(負数あり)

2進数にした際、負数は絶対値の2の補数で表す場合での10進数への基数変換の方法です。

図 2進数=>10進数(負数あり)

①最上位ビットチェック

0なら正の数=>いままでどおりのやり方で10進数へ

1なら負の数=>②へ


②1の補数へ

この2進数は絶対値の2の補数。

まずは1の補数へ変換。

 2の補数 = 1の補数 + 1 より、

 1の補数 = 2の補数 - 1


③元の数の絶対値へ

元の数の絶対値に戻すには、ビット反転

 

④10進数へ

絶対値を10進数へ。


⑤符号をつける

負の数なので、-をつける。


②、③を一気にやる方法

1の補数にして、元の絶対値にして、と何段階もやらなくてもできます。

例えば4ビットの場合

 2の補数 = 10000 - 元の数

 元の数 = 10000 - 2の補数

4ビットなら 5ビットの最小値 - 2の補数 で元の数がわかります。


練習問題

⑩はひっかけです。ビット列が指定ビット長に足りません。

足りない場合は、上位ビットに0を追加してください。

図 ビット長に足りない場合

次回は

2進数=>10進数(負数あり)のテストをします。