てもとツール
ガイド

2進数と10進数の変換を手計算でする方法|16進数も

2進数を10進数に直すときは、各桁に1・2・4・8…の重みを掛けて足します。10進数を2進数に直すときは、2で割り続けて余りを下から読みます。182を例に両方の計算を表で追い、16進数・8進数への区切り方と、小数・負の数でつまずく点をまとめました。

公開読了目安 約6分

この記事の要点

  • 2進数→10進数は、右の桁から1・2・4・8…の重みを掛けて足す
  • 10進数→2進数は、2で割り続けて、余りを下から上へ読む
  • 2進数→16進数は、右から4桁ずつ区切って0〜Fに置き換える
  • 桁数が4の倍数でないとき、4桁の区切りを左から始めると別の数になる
  • 10進数の0.1は、2進数では終わらない小数になる
目次

2進数を10進数に直すときは、右の桁から順に1・2・4・8…の重みを掛けて、足し合わせます。 10進数を2進数に直すときは、2で割り続けて、余りを下から上へ並べます。

16進数とのあいだは、2進数を右から4桁ずつ区切れば、1区切りずつ置き換えるだけです。 この記事では、182を例に、どの計算も表で1段ずつ追います。

授業や資格試験の問題を手で解くときの手順と、確かめ算のしかたをまとめました。 小数や負の数でつまずく点にも触れます。

2進数を10進数に直す:桁の重みを足す

2進数の各桁には、右から順に1・2・4・8・16…の重みがあります。 1つ左へ進むごとに、重みが2倍になります。

2進数の10110110を、右の桁から順に並べると次のとおりです。

右から重み桁の数字
1桁目10
2桁目21
3桁目41
4桁目80
5桁目161
6桁目321
7桁目640
8桁目1281

桁の数字が1の行の重みだけを足します。 128 + 32 + 16 + 4 + 2 = 182 で、10110110は10進数の182です。

0の桁は、重みを掛けても0なので飛ばしてかまいません。 足すのは1の桁だけ、と覚えると計算が速くなります。

10進数を2進数に直す:2で割って余りを並べる

10進数の182を2で割り、商が0になるまで割り続けます。 割るたびに出る余り(0か1)を書き留めておきます。

割られる数2で割った商余り
182910
91451
45221
22110
1151
521
210
101

余りを、いちばん下の行から上へ読みます。 1・0・1・1・0・1・1・0で、182は2進数の10110110です。

大きい重みから引いていく方法もある

2で割る代わりに、重みを大きい順に引いていく方法もあります。 182から、引ける最大の重み128を引くと54が残ります。

54からは32、残り22から16、残り6から4、残り2から2を引いて0になります。 引けた重み(128・32・16・4・2)の桁を1、引けなかった桁を0にすると、10110110です。

数が小さいときや、重みの表が頭に入っているときは、こちらのほうが速く済みます。 2で割る方法は、桁が多くても同じ手順で進められます。

答えの桁数を先に見積もる

2進数の桁数は、重みの表から見当がつきます。 8桁で表せる最大の数は、8桁すべてが1の11111111で、255です。

182は128以上256未満なので、2進数にすると8桁になります。 計算して7桁や9桁になったら、どこかで割り算か足し算を間違えています。

一般に、n桁の2進数で表せる最大の数は、2のn乗から1を引いた数です。 4桁なら15、16桁なら65,535です。

2進数と16進数は、右から4桁ずつ区切る

16進数は、0〜9とA〜Fの16種類の数字を使います。 2進数の4桁は0〜15のどれかなので、16進数の1桁にちょうど対応します。

2進数10進数16進数
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F

10110110を右から4桁ずつ区切ると、1011と0110です。 1011はB、0110は6なので、16進数ではB6になります。

16進数から10進数へは、16の重みで足します。 B6なら、Bの11に16を掛けた176と、6を足して182です。

区切りは必ず右から

桁数が4の倍数でないときは、区切り方で答えが変わります。 6桁の101101(10進数の45)で比べると、次のとおりです。

  • 右から区切る: 10 と 1101 で、2とDになり 2D。10進数では45で、元の数と合う
  • 左から区切る: 1011 と 01 で、Bと1になり B1。10進数では177で、別の数になる

左の端に余った桁は、頭に0を足して0010のように4桁にそろえると読み違えません。 頭に0を足しても、数の大きさは変わりません。

8進数は3桁ずつ

8進数は0〜7の8種類なので、2進数を右から3桁ずつ区切ります。 10110110は、10・110・110に分かれ、2・6・6で、8進数の266です。

8進数は、ファイルの権限を表す755のような数で見かけます。 権限の数の読み方は、755とrwxr-xr-xを行き来する手順にまとめています。

小数は、2進数で終わらないことがある

小数の部分を2進数にするときは、2で割る代わりに2を掛けます。 掛けた結果の整数の部分(0か1)を上から順に並べます。

0.625なら、2を掛けて1.25(1)、残りの0.25に掛けて0.5(0)、0.5に掛けて1.0(1)で終わります。 上から並べて、0.625は2進数の0.101です。

ところが0.1は、何回2を掛けても小数の部分が0になりません。 0.0001100110011…と、0011のくり返しが続く小数になります。

小数を2進数で持つ計算で、0.1がぴったりにならないのはこのためです。 手計算の問題では、「小数第何位まで求めるか」の指示を先に確かめてください。

負の数は「-」を付けるか、補数で表すか

負の数の書き方には、10進数と同じく「-」を付ける書き方と、決まった桁数の中で表す「補数」があります。 桁数(ビット数)を決めて負の数を表す問題では、補数の書き方が使われます。

8ビットの「2の補数」では、-1は11111111です。 同じ-1でも、「-」を付ける書き方なら-1のままです。

補数で書いた数を10進数に戻すときは、いちばん左の桁の重みを、128ではなく-128として足します。 11111111なら、-128に残りの127を足して-1です。

上の重みの表は負の数を考えない表なので、11111111を足すと255になります。 補数の答えを確かめるときは、いちばん左の桁だけ符号を変えて足してください。

どちらで答えるかは、問題文の指示と桁数の有無で確かめます。 桁数の決まった箱に数を入れる話は、2038年問題とはの32ビットの上限でも出てきます。

手計算の答えを確かめる

進数変換ツールの2進数の欄に10110110を入れると、10進数の欄に182、16進数の欄にb6が出ます。 16進数の大文字小文字は、詳細設定で切り替えられます。

4桁ごとに空白を入れた「1011 0110」のままでは読めないので、空白を消してから入れてください。 このツールは整数だけを扱い、小数の変換には使えません。

負の数は「-」を付けた書き方で出し、補数の形にはしません。 補数の問題は、いちばん左の桁を-128として足す手計算で確かめてください。

ツールの操作は、2進数・16進数を相互変換する使い方にまとめています。

関連記事

あわせて読みたい

同じテーマ・関連ツールの記事です。