1.10進数 → 2進数
10進数を2進数に変換するには、変換したい10進数を商が0になるまで2で割りつづけ商と余りを求めればよい。
10進数の60は、2進数では111100である。8ビットで表現するときは、足りないけた数分、上位のけたに0を補充する。
10進数の小数を2進数に変換する方法は基本情報技術者講座で解説しています。
2.2進数
→ 10進数
2進数から10進数に変換するには、2進数の各けたの重みをかけたものの合計を求める。
よく使われる数値は覚えておくと便利である。
2進数 |
10進数 |
11111111
10000000 |
255
128 |
3.マイナスの数値の10進数 → 2進数
前述した内容はプラスの10進数を2進数に変換する方法である。ここでは、マイナスの数値の10進数を2進数に変換する方法を解説する。2進数のマイナスの数値の表現方法はいくつかあるが、ここでは2の補数を使った表現方法を解説する。手順はつぎのとおりである。
1.10進数を2進数に変換する
変換したい10進数を符号を考慮せずに2進数に変換する
2.表現するビット数で表現する
10進数の60は、2進数では111100である。8ビットで表現するときは、足りないけた数分、上位のけたに0を補充する。
3.2の補数を求める
2進数の2の補数を求める。この2の補数表現された2進数が10進数−60の2進数表現である。2の補数は各ビットの1と0を反転したものに+1したものだ。なお、各ビットの1と0を反転させたものを1の補数という。つまり、2の補数は、1の補数+1である。
求まった1の補数に+1する。(2の補数)最上位のけた上がりが発生したときは無視する。
スポンサードリンク
4.マイナスの数値の2進数 → 10進数
マイナスの2進数とプラスの2進数では当然変換方法が違う。マイナスの10進数を2進数に変換した結果を見ると分かるように10進数のようにマイナスの符号(−)があるわけでもない。では、どうやってプラスの2進数とマイナスの2進数を見分ければよいのだろうか。これは、最上位のビット(一番左端のビット)に注目すればよい。最上位のビットが1ならばマイナスの2進数であり、0であればプラスの2進数である。
最上位のビッドが0のプラスの2進数は、前述した10進数から2進数の変換方法で10進数に変換すればよい。最上位のビットが1のときは、その2進数の2の補数を求め、その値を10進数に変換したものがその数値の値だ。もちろんその10進数にマイナスの符号(−)を付けることを忘れてはいけない。
最上位のビットに注目する。最上位のビットが1であるから、この2進数は負の数であることが分かる。負の数の2進数はそのまま10進数に変換してはいけない。2の補数を求めて、その2進数を10進数に変換しなければいけない。
1.2の補数を求める
求まった1の補数に+1する。(2の補数)最上位のけた上がりが発生したときは無視する。
2.10進数に変換する
1 ×25+1 ×24+1 ×23+1 ×22
=25+24+23+22
=32+16+8+4
=60
である。マイナスの符号を付けて、−60である。2進数11000100は10進数では、−60である。
まとめ
マイナスを考慮しなくてはいけないときの2進数から10進数の変換は複雑に感じるかもしれない。要は、最上位のビットに注目し、0ならばその2進数を10進数に変換すればよい。1ならば、その2進数の2の補数を求めその値を10進数に変換する。まとめるとつぎのようになる。
|