基数変換 練習ツール

2進数・10進数・16進数の変換を、自分の手で解いて身につけるための練習ツールです。ランダムに出題される問題を解くと、その場で採点。間違えても、解き方(2で割り続ける・重みを足す・4桁ずつ区切る など)を毎回表示するので、くり返すうちに速く正確に解けるようになります。基本情報技術者試験やITパスポートの対策にも。計算はすべてブラウザ内で完結し、外部には送信されません。

出題:

正解 0 / 出題 0

10進数の — を、2進数に変換してください。

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進
000000810008
100011910019
200102101010A
300113111011B
401004121100C
501015131101D
601106141110E
701117151111F

例題で手順を確かめる

練習の前に、コツの表の手順を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進
1281000000024811111000
1921100000025211111100
2241110000025411111110
2401111000025511111111

たとえば 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計算ツール で確かめられます。

あわせて使う

← ツール一覧へ