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進数(負数あり)のテストをします。