基数変換 練習ツール
2進数・10進数・16進数の変換を、自分の手で解いて身につけるための練習ツールです。ランダムに出題される問題を解くと、その場で採点。間違えても、解き方(2で割り続ける・重みを足す・4桁ずつ区切る など)を毎回表示するので、くり返すうちに速く正確に解けるようになります。基本情報技術者試験やITパスポートの対策にも。計算はすべてブラウザ内で完結し、外部には送信されません。
正解 0 / 出題 0
2進数は先頭の0やスペースがあってもOK(2の補数だけは8ビットで答えます)。16進数は大文字・小文字どちらでもOK。Enterキーで採点→次の問題。
手で解くときの4つのコツ
| 変換 | やり方 |
|---|---|
| 10進 → 2進 | 2で割り続けて、余りを下から読む |
| 2進 → 10進 | 1が立っている桁の重み(128, 64, 32, 16, 8, 4, 2, 1)を足す |
| 2進 ⇔ 16進 | 2進数を4桁ずつ区切ると、16進数の1桁に対応する |
| 負の数(2の補数) | 絶対値を2進数にして、全ビットを反転して1を足す。8ビットなら先頭ビットの重みを −128 として足しても求まる |
0〜15の早見表(4ビット ⇔ 16進数1桁)
2進⇔16進の変換は、この16通りを覚えるとかなり速くなります。
| 10進 | 2進(4ビット) | 16進 | 10進 | 2進(4ビット) | 16進 |
|---|---|---|---|---|---|
| 0 | 0000 | 0 | 8 | 1000 | 8 |
| 1 | 0001 | 1 | 9 | 1001 | 9 |
| 2 | 0010 | 2 | 10 | 1010 | A |
| 3 | 0011 | 3 | 11 | 1011 | B |
| 4 | 0100 | 4 | 12 | 1100 | C |
| 5 | 0101 | 5 | 13 | 1101 | D |
| 6 | 0110 | 6 | 14 | 1110 | E |
| 7 | 0111 | 7 | 15 | 1111 | F |
例題で手順を確かめる
練習の前に、コツの表の手順を1問ずつ追ってみます。
例1:10進数の45を2進数に
45÷2=22 余り1、22÷2=11 余り0、11÷2=5 余り1、5÷2=2 余り1、2÷2=1 余り0、1÷2=0 余り1。余りを下から読んで 101101 です。重みで検算すると 32+8+4+1=45 になります。
例2:2進数の10110110を16進数と10進数に
4桁ずつ区切ると 1011 と 0110。早見表から 1011=B、0110=6 なので16進数は B6 です。10進数は、1が立っている桁の重みを足して 128+32+16+4+2=182 になります(16進数から B×16+6=182 と求めても同じです)。
例3:−20を8ビットの2の補数に
20を2進数にすると 00010100。全ビットを反転すると 11101011、1を足して 11101100 です。先頭ビットの重みを −128 として足すと、−128+64+32+8+4=−20 となり、正しいことが確かめられます。
インフラの実務では、ここで使う
基数変換は試験だけの知識ではありません。ネットワークの仕事では、とくにサブネットマスクの2進数をよく使います。サブネットマスクの1オクテットに出てくる値は、上のビットから1が並んだ次の8通りだけです。
| 10進 | 2進 | 10進 | 2進 |
|---|---|---|---|
| 128 | 10000000 | 248 | 11111000 |
| 192 | 11000000 | 252 | 11111100 |
| 224 | 11100000 | 254 | 11111110 |
| 240 | 11110000 | 255 | 11111111 |
たとえば 255.255.255.192 は、最後のオクテットが 11000000 なので、先頭から1が26個並ぶ /26 です。このほか、MACアドレス(00-1A-2B-…)やIPv6アドレスは16進数で書かれます。サブネットの計算は サブネット計算 練習ツール で続けて練習できます。
よくある質問
Q. 8ビットの2の補数で表せる範囲は?
A. −128〜127です。先頭のビットが1なら負の数、0なら0以上の数になります。たとえば 01111111 は 127、10000000 は −128 です。
Q. 2進数の桁数が4の倍数でないときは、どう16進数にする?
A. 左側(上位)に0を足して、4桁ずつに区切れるようにします。101101 なら 0010 1101 として、2 と D で 2D です。右側に0を足すと値が変わるので注意してください。
Q. 8進数は練習しなくていい?
A. このツールでは出題していませんが、考え方は同じで、2進数を3桁ずつ区切ると8進数の1桁になります。実務では、Linuxのファイルの権限(chmod 755 など)で8進数を使います。権限の数字と意味の対応は chmod計算ツール で確かめられます。