基数と基数変換|2進数・16進数と10進数の行き来【基本情報技術者試験 科目A】

基本情報技術者試験

科目A 第1章 基礎理論1-1 基数と基数変換最終更新 2026-09-23

基本情報技術者試験の科目Aでは、2進数と16進数が説明なしで出てきます。 「何ビットで何通り表せるか」「この16進数は10進でいくつか」を、その場で出せることが前提になっています。 この回では、10進数の位取りから始めて、2進数→10進数、10進数→2進数、 2進数⇔16進数の3方向を手順にします。

出典:基本情報技術者試験 シラバス Ver9.2 大分類1 基礎理論/中分類1 基礎理論/1. 離散数学

(1)基数

2 進数,8 進数,10 進数,16 進数,n 進数の表現,2 進数と10 進数などの基数の変換手法を理解する。

位取り ── どの位が、いくつ分を表しているか

ふだん使う10進数から確かめます。526 という数を、位ごとにばらします。

位 百の位 十の位 一の位
数字 5 2 6
重み 10×10=100 10 1
この位が表す数 5×100=500 2×10=20 6×1=6

500 + 20 + 6 で 526 です。当たり前に見えますが、ここで効いているのは 位が1つ左へ動くたびに、重みが10倍になるという決まりです。 この「10倍」の10を基数といいます。

基数とは

10進数 … 位が1つ左へ動くと重みが10倍。使う数字は 0〜9 の10種類

2進数 … 位が1つ左へ動くと重みが2倍。使う数字は 0 と 1 の2種類

16進数 … 位が1つ左へ動くと重みが16倍。使う数字は 0〜9 と A〜F の16種類(A・B・C・D・E・F が 10・11・12・13・14・15)

使える数字の種類が基数と同じ個数になり、種類を使い切ったら位が1つ上がります。 10進数で 9 の次に位が上がるのと同じことが、2進数では 1 の次に起きます。

2進数を10進数にする ── 重みを足す

位取りが分かっていれば、2進数から10進数への変換は足し算だけです。 1101 という2進数を、10進数にします。

位 左から1つ目 2つ目 3つ目 4つ目
数字 1 1 0 1
重み 2×2×2=8 2×2=4 2 1
この位が表す数 1×8=8 1×4=4 0×2=0 1×1=1

8 + 4 + 0 + 1 で 13 です。数字が 1 の位の重みだけを足すと言い換えられます。 0 の位は、いくつであっても 0 にしかならないからです。

重みは右から 1, 2, 4, 8, 16, 32, 64, 128 と倍々に増えます。 この8個を右から順に言えるようにしておくと、8桁まではその場で計算できます。 なお、2進数の1桁を1ビットといいます。「8ビット」は2進数8桁のことです。

練習

2進数の 11010 を10進数にすると、いくつですか。

10進数を2進数にする ── 2で割って、余りを後ろから読む

逆向きは、2で割った余りを書き出していく手順です。 なぜ余りが桁になるのかは、位取りで説明がつきます。2進数の一番右の位の重みは 1 で、 その左はすべて 2 の倍数です。だから2で割った余りは、一番右の位の数字そのものになります。 割った商について同じことを繰り返せば、右から順に桁が決まります。

13 を2進数にしてみます。商が 0 になるまで、2 で割り続けます。

13 ÷ 2 = 6 … 余り 1
 6 ÷ 2 = 3 … 余り 0
 3 ÷ 2 = 1 … 余り 1
 1 ÷ 2 = 0 … 余り 1

商が 0 になったので、ここで止めます。余りを下から上へ読んで 1101。

10進数を2進数にする手順

  1. 商が 1 になっても、もう一度割る。1 ÷ 2 = 商 0・余り 1 です。ここでやめると、いちばん左の桁が落ちます。止めるのは商が 0 になったときです。
  2. 書き出した余りは、後ろから読む。最後に書いた余りが、いちばん左の桁です。書いた順のまま読むと、左右が逆の数になります。
  3. 出した答えを、逆向きに戻して検算する。1101 の重みを足すと 8 + 4 + 1 = 13。元の数に戻れば、桁の落ちも並びの逆も同時に確かめられます。

間違えるのは、この3か所に集中します。

練習

10進数の 25 を2進数にすると、どれですか。

16進数は4桁ずつ、8進数は3桁ずつ

16進数への変換だけは、割り算をしなくても済みます。 16 は 2 を4回かけた数なので、2進数の4桁が16進数の1桁にちょうど収まるからです。 同じ理由で、8 は 2 を3回かけた数なので、8進数は3桁ずつになります。

2進数 16進数 2進数 16進数
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

たとえば2進数の 11011010 なら、右から4桁ずつ区切って 1101 と 1010。 上の表で 1101 は D、1010 は A なので、16進数では DA です。

8進数も同じやり方です。11011010 を右から3桁ずつ区切ると 11|011|010。 それぞれ 3・3・2 なので、8進数では 332 です (検算:3×64 + 3×8 + 2 = 218。16進の DA も 13×16 + 10 = 218 で、同じ数を指しています)。

⚠️ 区切るのは右からです。桁数が4の倍数でないときは、左側に 0 を補って4桁にそろえます。 たとえば 110110 は 0011 0110 と見て 36 です。左から区切ると桁の重みがずれます。

先に、ひとつ予想してみましょう

16進数の 3F を10進数にすると、いくつですか。

16進数から10進数へ直すときは、位の重みが 1, 16, 256 と16倍ずつ増えることを使います。 A〜F は 10〜15 なので、3F なら 3×16 + 15 で 63 です。 2進数を経由しても同じで、0011 1111 の重みを足すと 32 + 16 + 8 + 4 + 2 + 1 = 63 になります。

まとめ

この回で持ち帰ること

1. 位が1つ左へ動くときの倍率が基数。2進数なら2倍、16進数なら16倍

2. 2進数→10進数は、数字が 1 の位の重み(1, 2, 4, 8, 16, 32, 64, 128)を足す

3. 10進数→2進数は、商が 0 になるまで2で割り、余りを後ろから読む

4. 2進数⇔16進数は、右から4桁ずつ区切って読み替える(8進数は3桁ずつ)。A〜F は 10〜15

次に読む

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。

本文の例題(526・1101・13・11011010 など)と練習問題は、すべて当サイトが説明のために作ったものです。

Copied title and URL