本日は、無償学習塾の学習指導に参加しました。高校1年生の生徒さんに、情報の「ビットとバイト」「N進数の変換」を解説しました。
N進数について
ここでは、N進数で表現された 10 を 10
(N) のように表記します。
それぞれの進数で表現したときの値
10進数 |
2進数 |
16進数 |
0(10) |
0(2) |
0(16) |
1(10) |
1(2) |
1(16) |
2(10) |
10(2) |
2(16) |
3(10) |
11(2) |
3(16) |
4(10) |
100(2) |
4(16) |
5(10) |
101(2) |
5(16) |
6(10) |
110(2) |
6(16) |
7(10) |
111(2) |
7(16) |
8(10) |
1000(2) |
8(16) |
9(10) |
1001(2) |
9(16) |
10(10) |
1010(2) |
A(16) |
11(10) |
1011(2) |
B(16) |
12(10) |
1100(2) |
C(16) |
13(10) |
1101(2) |
D(16) |
14(10) |
1110(2) |
E(16) |
15(10) |
1111(2) |
F(16) |
16(10) |
10000(2) |
10(16) |
2進数から16進数への変換
2進数の整数 1110100101
(2) を16進数に変換するとします。
はじめに、下の図のように、下位の桁から順番に4桁ずつ区切ります。
①は 11
(2) として、この値を16進数に変換すると 3
(16) となります。
②は 1010
(2) として、この値を16進数に変換すると A
(16) となります。
③は 0101
(2)(101
(2))として、この値を16進数に変換すると 5
(16) となります。
桁の並び順に16進数に変換した値を並べると 3
(16),A
(16),5
(16) となり、これらを連結すると 3A5 という値になります。このことから、2進数の 1110100101
(2) を16進数に変換した値は 3A5
(16) となります。
一旦10進数に変換してから、その値を16進数に変換してもよいです。
16進数から2進数への変換
16進数の整数 A27
(16) を2進数に変換するとします。
はじめに、各桁の A,2,7 をそれぞれ A
(16),2
(16),7
(16) として、それぞれを4桁の2進数に変換します。最上位以外の桁(この例では A27
(16) のうち 27 の部分)については、2進数に変換したときに桁数が4桁に満たなかった場合は、左側に0を埋めて全体で4桁にします。
A
(16) を2進数に変換すると 1010
(2) となります。
2
(16) を2進数に変換すると 10
(2) となり、左側に0を埋めて 0010
(2) とします。
7
(16) を2進数に変換すると 111
(2) となり、左側に0を埋めて 0111
(2) とします。
桁の並び順に2進数に変換した値を並べると 1010
(2),0010
(2),0111
(2) となり、これらを連結すると 101000100111 という値になります。このことから、16進数の A27
(16) を2進数に変換した値は 101000100111
(2) となります。
一旦10進数に変換してから、その値を2進数に変換してもよいです。
備考
N進数からM進数(NとMがともに10以外のとき)に変換する場合は、基本的にN進数を一旦10進数に変換してから、その値をM進数に変換します。
2進数と16進数間の変換は、2進数の4桁で表現できる最大値 1111
(2) と、16進数の1桁で表現できる最大値 F
(16) がどちらも同じ大きさ(15
(10))であることから、上記の方法で変換することもできます。
N進数から10進数への変換、10進数からN進数への変換は、Nがどんな値でもその方法はほぼ同じです。上記の方法を用いると、2進数と16進数間の変換をスムーズに行うことができます。定期テストが行われる前に、実際に手計算をして、その方法を確認してほしいです。