基本情報技術者試験を勉強していると、2進数や、10進法など、「○進数」、「△進法」がたくさん出てきます。
2進数は2を基数として表現した数で、10進法は10を基数とした表記方法を表します。

基数?進数?どっちもわかりません!!
基数とは「一の位、十の位、百の位、それぞれの位に入って良い数」のことです。
例えば、「1つの桁に入って良い数は0から9までの10個だよ。」は基数が10で、表記方法は10進法と呼びます。
基本情報情報技術者試験では、「2進法で表される数字を、10進法で表し直しなさい。」のような問題がしばしば出題されています。
この「○進法」から「△進法」へ変換することを基数変換と呼びます。
そこで今回の記事では、基数変換がマスターできるようにわかりやすく解説しましたので、2進数とか10進数とか聞いたことはあるけど違いがわからなかったり、10進数から2進数へ変換の仕方がわからない方はぜひ先へお進みください。
- 基数とは?
- 基数変換とは?
- 10進数から2進数の変換の仕方
- 10進数から8進数・16進数の変換の仕方
基数とは?
その数の位を何個の数字で表したものか、その個数のことを基数と言います。

10進数とか2進数とかよく聞くんですけど、進数ってなんですか?
どんな違いがあるんですか?
10進数・・・一つの桁を0〜9の10個の数字で表したもの(これが一番馴染み深いですよね)
2進数・・・一つの桁を0と1の2個の数字で表したもの
つまり
n進数・・・一つの桁をn個の数字で表したもの
基数変換って何?

基数って言葉が出てきたら○進数のこと!ってのはわかりました!
じゃあ「基数変換」は○進数を△進数に変換することですか?

そうだよ!
実際に変換してみるからイメージしてみて!
基数変換するときは《重み表》を使うと便利!
重み表とは一桁ごとの重み=○を何乗までできるかをまとめた表です。
文字だけでは分かりづらいと思うので、実際に変換してみてイメージしてください!
2進数の重み表
2進数➡0と1だけで値を表す方法のことです。
2進数の重み表は下記のようなものです。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
○進数の重み表を書く時、まず上の段に重み=各位に入る重さを書いていきます。2進数の場合は20、21、22、23・・・と表に書き込んでいきます。
この表を使っていくことが基数変換をするのに役立っていきます。

実際に重み表を使って基数変換をしていこう!
10進数から2進数へ基数変換する方法
変換したい10進数の数字の中に2xが何個入るかで重み表を記入していきます。
例題を一問解いてみます。
(例題)10進数38を2進数に変換しなさい。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
10進数38を2進数に変換する時 38=25+22+21なので 8bitの2進数で10進数の38を表した時は「00100110」となります。
基数変換:2進数から10進数への変換は重み表で変換
続いては2進数から10進数に変換する方法です。
先ほどとの逆をすれば良いだけなのですが。
(例題)2進数の01101100を10進数に変換しなさい。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
重み表を使って、それぞれの位に0か1を入れていきます。
そして重みを足し合わせたものが10進数で表した数です。
つまり今回の場合は 26+25+23+22=108
A.108
基数変換:10進数⇄16進数の変換は重み表で楽に変換
2進数⇄10進数は比較的簡単なのでわからない方は何度も繰り返し読んでみてください。
あとは 2進数⇄10進数 を応用していくことで他の変換もできるようになります。
16進数→一つの位を16個の数字で表したもの
下の表のように。10進数では表せない10から15まではアルファベットのAからFで表します。
10進数 | 16進数 |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
(例題)10進数の108を16進数に変換しなさい
考え方は2進数の時と同じ。
16進数も、一の位、十六の位、二五六の位・・・と続いていくので
重み表を用いる
重み | 163=4096 | 162=256 | 161=16 | 160=1 |
16進数 | 0 | 0 | 6 | 12=C |
108=16×6+1×12 より
10進数の108を16進数に変換すると6Cとなります。
(例題)16進数3Fを10進数に変換しなさい
16進数から10進数の変換も重み表を使えば簡単です。
重み | 163=4096 | 162=256 | 161=16 | 160=1 |
16進数 | 0 | 0 | 3 | F=15 |
16×3+1×15=63 となります。
基数変換:2進数⇄16進数は4桁ずつ考える
2進数を4桁ずつに分けて考えます。
(例題)2進数の01101010を16進数に変換する
重み表を作れば分かりやすいとです。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
16進数 | 6 | A |
それぞれの10進数に直す時を考えます。
10進数を2進数に変換する時は2の冪乗の足し算で各位の数を決めます。
10進数を16進数に変換する時は16の冪乗の足し算で各位の数を決めます。
16は24なので2進数の4桁分を16進数では1桁で表していることになります。
つまり今回の例題では、
2進数の01101010を4桁ずつ 0110 と 1010に分けて
0110→6
1010→10(A)
よって答えは6A
基数変換:2進数⇄8進数の変換は3桁ずつ考える
2進数⇄16進数と同様に8進数では3桁ずつ考えます。
(例題)8進数137を2進数に変換せよ
8=23 より3桁ずつ考えればいいので
一の位7を2進数に変換→111
八の位3を2進数に変換→011
六十四の位1を2進数に変換→001
よって答えは001011111(8bitの条件がついてたら01011111)
まとめ
今回は基数とはなにか、基数変換する方法について解説していきました。
2進数と重み表をつかって基数変換をするのがこれからの応用でも役立つ変換方法となりますので、この基本をしっかりと抑えていきましょう!
また当サイトでは基本情報技術者試験に独学で合格できるように、過去問の解説や勉強方法などをまとめていますので、他の記事も読んでみてください!
- 10進数⇄n進数の変換はnの冪乗を考える!
- nの冪乗を考えるときは重み表を使うとラク!
- 2進数⇄16進数の変換は4桁ずつ考える!
- 2進数⇄8進数の変換は3桁ずつ考える!