8進数から16進数への基数変換 つづき
>疲れたので、簡単な方法の説明は次回に気が向いたら。。
と書いて数年経ち今更ですが簡単な方法をご説明いたします。
引き続き、この問題を簡単な方法で解きます。
=================================
平成21秋
=================================
【問64】8進数の55を16進数で表したものはどれか。
ア 2D イ 2E ウ 4D エ 4E
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
簡単な方法は
8進数を2進数にしてから
2進数を16進数にします。
ではやってみます。
【8進数を2進数】
8進数は2進数3桁で表現できます。
つまり、2進数の見出しを書き出してみると
3桁目 2桁目 1桁目
4 2 1 (2進数見出し)
ですよね。
各桁の値を合計すると
4+2+1=7
つまり、2進数の3桁で表現できる数は
0を入れると8となります。
よって
8進数の1桁は2進数3桁で表現できるんです。
証明してみますね。
たとえば、8進数のMAX値の7
2進数の見出しを書き出して2進数に変換してみます。
3桁目 2桁目 1桁目
4 2 1 (2進数見出し)
1 1 1 (7の2進数)
8進数の7は、2進数では111となります。
ほらね
2進数が3桁あれば8進数の1桁を表現できるんです。
ちなみに8進数で8は10となりますからね。
問題の8進数55を2進数にしますね。
2桁目の5を同じように2進数の3桁で表現して
3桁目 2桁目 1桁目
4 2 1 (2進数見出し)
1 0 1 (5の2進数)
101となります。
そこに、1桁目の5を2進数の3桁で表現して繋げれば
3桁目 2桁目 1桁目
4 2 1 (2進数見出し)
1 0 1 (5の2進数)
101101(2進数)
と、いとも簡単に8進数から2進数に変換できます。
わかりましたか?
8進数が何桁であっても、この方法で変換できます。
つぎに2進数から16進数に変換します。
【2進数を16進数】
8進数は2進数3桁あれば表現できる仕組みと同じで
16進数は2進数4桁あれば表現できちゃうんです。
つまり、2進数を4桁ごとに区切って
(足りない場合は左から0を追加して4桁にします)
4桁の2進数を16進数にすればいいんです。
では、やってみます。
101101(2進数)
4桁に区切ると
10 と 1101 ですね。
10は4桁に足りてないので、0010になります。
そうすると
0010 1101
つぎに4桁毎の2進数を16進数に変換します。
2進数の見出しを書き出し10進数の値をみて、そのまま16進数に変換しちゃいます。
4桁目 3桁目 2桁目 1桁目
8 4 2 1 (2進数見出し)
0 0 1 0 (0010)
10進数にするには縦に掛けて合計でしたね。
4桁目 3桁目 2桁目 1桁目
8 4 2 1 (2進数見出し)
× × × ×
0 0 1 0 (0010)
= = = =
0 0 2 0
合計は2ですね。
2を16進数で表すと、そのまま2ですね。
つぎの値も同じようにやってみます。
4桁目 3桁目 2桁目 1桁目
8 4 2 1 (2進数見出し)
1 1 0 1 (1101)
10進数にするには縦に掛けて合計でしたね。
4桁目 3桁目 2桁目 1桁目
8 4 2 1 (2進数見出し)
× × × ×
1 1 0 1 (1101)
= = = =
8 4 0 1
合計は8+4+0+1=13ですね。
13を16進数にすると
10はA、11はB、12はC、13はDですから
10進数の13は、16進数でDとなります。
あとは、2とDを繋げれば完成
2Dとなり。
答えはアとなります。
いかがでしょうか?
参考書では書かれていない方法が間違いはありません。
この考えで十分対応できますよ。