ITパスポート対策
2進数と基数
ふだんの数は10進数、コンピュータは2進数
ふだん使う数字は 0 から 9 までの10種類を使い、9 の次で桁が上がります。これを10進数と言います。使う数字の種類の数を基数と呼び、10進数の基数は 10 です。
どの桁にも重みがあります。10進数の 2503 は次のように分解できます。
2503 = 2×1000 + 5×100 + 0×10 + 3×1
コンピュータは電気が流れているかいないかの2つの状態しか区別できないため、0 と 1 の2種類だけを使う2進数で数を扱います。2進数の桁の重みは、右から 1、2、4、8、16、32、64、128 と2倍ずつ増えていきます。
| 10進数 | 2進数 | 16進数 |
|---|---|---|
| 0 | 0 | 0 |
| 5 | 101 | 5 |
| 10 | 1010 | A |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
2進数を10進数に直す
1 が立っている桁の重みを足すだけです。2進数の 1011 を直してみます。
- 桁の重みを右から書く。1、2、4、8
- 1 が立っているのは 8 の桁、2 の桁、1 の桁
- 8 + 2 + 1 = 11
もう1問やります。2進数の 11010 は、重みが右から 1、2、4、8、16 で、1 が立っているのは 16 と 8 と 2 の桁なので、16 + 8 + 2 = 26 です。
10進数を2進数に直す
2 で割り続けて、余りを下から読みます。10進数の 13 でやってみます。
- 13 ÷ 2 = 6 余り 1
- 6 ÷ 2 = 3 余り 0
- 3 ÷ 2 = 1 余り 1
- 1 ÷ 2 = 0 余り 1
余りを下から並べて 1101 です。検算すると 8 + 4 + 0 + 1 = 13 になり、合っています。変換したら足し算で戻して確かめる癖を付けておくと、本番で計算ミスに自分で気づけます。
16進数は2進数4桁のかたまり
16進数は 0 から 9 と A から F の16種類を使います。A が 10、B が 11、C が 12、D が 13、E が 14、F が 15 です。2進数4桁でちょうど16通りを表せるので、2進数4桁と16進数1桁がぴったり対応します。
2進数の 11010110 を16進数にするなら、右から4桁ずつ区切って 1101 と 0110 に分け、それぞれ D と 6 に直して D6 となります。
逆に16進数の 2F を10進数にするには、桁の重みが右から 1、16 なので、2×16 + 15×1 = 32 + 15 = 47 です。
試験ではこう問われます
基数変換は毎回のように出ます。引っかけの型は次のとおりです。
- 16進数の A を 11 と数えてしまう誤り。A は 10 から始まり、F が 15 です
- n ビットで表せる値の個数は 2 の n 乗通りで、範囲は 0 から 2 の n 乗から 1 を引いた値まで。8ビットなら 256 通りで、最大値は 255 であって 256 ではありません
- 2進数は1桁増えると表せる値の個数が2倍になります。10倍と混同しないでください
- 選択肢に 1011 と 1101 のように似た並びが混ざります。変換した答えを必ず10進数に戻して照合してください