【応用情報技術者試験・基礎理論】
内容:10進数と2進数の間の変換、10進数と16進数の間の変換
2進数
我々が普段よく見る数は、10進数といって、1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …, 1903, …というように、1~9の数を使って表現します(9までいったら、次からは桁が上がり、10になります)。
しかし、コンピュータの大元は、0か1しか判断できません。
なので、我々の10進数表記を、0と1しか使わない表現に変換してあげる必要があります。
この0か1しか使わない表現方法を、2進数といいます。
2進数は、こんな感じで数を表現します。
0
1 ←ここまでは10進数と同じ
10 ←2進数では2を使えない(0か1しか使えない)ため、桁を上げてまた0から
11
100 ←先ほどと同じように、12とはできないため、桁を上げて表現
…
16進数
2進数では0~1の2つの数字、10進数では0~9の10つの数字しか使えませんでしたが、16進数では、0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F の10個の数字と6個のアルファベットを使って表現します。
考え方は2進数と同じで、Fまでいったら桁が上がります。
0
1
2
…
9 ← ここまでは10進数と同じ
A ← 16進数では、9の次はA
B
…
F ← 16進数で使える最大の記号
10 ← Fの次は、桁が上がって、また0から
11
…
19
1A
…
10進数 ↔ 2進数 の変換
10進数と2進数の対応は、次のようになっています。
10進数 | 2進数 |
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
… | … |
2進数から10進数に変換
これらの関係は、 を100の位、
を10の位、
を一の位として、2進数で
と表されるとき(例えば、101)、次の式で計算できます。
2進数表記で のとき、10進数表記では
となります。
例えば、2進数の101は、10進数では
と、5になります。
桁があがっても、同様に変換することができます。
例えば、二進数110101は、10進数では
と、53になります。
10進数から2進数に変換
10進数から2進数への変換は、次のように行います。
(1)まず、10進数を2で割り、その商と余りを求める
(2)さらに商を2で割り、その商と余りを求める
(3)商が0になるまで繰り返す
(4)余りを、最後に求まったものから順に並べる。
2で割った余りは0か1なので、余りを並べたものは2進数表記になることが分ります。
たとえば、10進数表記の21を2進数に変換するとき、次のように計算します。
21÷2 = 10余り1
10÷2 = 5余り0
5÷2 = 2余り1
2÷2 = 1余り0
1÷2 = 0余り1
この余りを新しいものからならべて、10101となります。
10進数 ↔ 16進数 の変換
10進数と16進数の対応表は、次のようになっています。
10進数 | 16進数 |
0 | 0 |
1 | 1 |
2 | 2 |
… | … |
9 | 9 |
10 | A |
11 | B |
… | … |
15 | F |
16 | 10 |
17 | 11 |
… | |
25 | 19 |
26 | 1A |
… | … |
※10進数の17は16進数では11だったりするからややこしいけど気を付けて。
変換の考え方は、2進数と同じです。
16進数から10進数に変換
を100の位、
を10の位、
を一の位として、16進数で
と表されるとき(例えば、1A0)、次の式で計算できます。
となります。
ただし、 ,
,
はそれぞれ16進数表示から10進数に直します。例えば、
のとき、
の値は11として計算します。
例えば、16進数でB3Aは、 10進数では
となります。
2進数と同様に、3桁以上のときの計算は、たとえば、16進数で11A92は、10進数に直すと
となります。
10進数から16進数に変換
こちらも、2進数の場合と同様に求めることができます。
たとえば、10進数2874は、16で割っていくことで、次のように16進数で表現できます。
2874÷16 = 179余り10 (16進数でA)
179÷16 = 11余り3
11÷16 = 0余り11 (16進数でB)
この余りを新しい順から並べて、B3Aとなります。
参考↓
コメント