2進数、8進数、16進数は、どれも位取り記数法です。違うのは底です。2進数は底が 22、8進数は底が 88、16進数は底が 1616 です。この考え方がわかると、記号が不思議なものには見えなくなります。

どの位取り記数法でも、各位は底の累乗になっています。10進数では、各位は 111010100100、… です。2進数では、各位は 112244881616、… です。同じルールがどの底にも成り立ちます。

それぞれの数の体系で使うもの

2進数で使う数字は 0011 だけです。

8進数では 00 から 77 までの数字を使います。

16進数では 1616 個の記号を使います。00 から 99 に加えて、1010 から 1515 を表すために AA から FF を使います。

つまり、16進数の1桁は2進数の1桁より多くの情報を表せます。なぜなら、16進数の各位は 22 の累乗ではなく 1616 の累乗で数えるからです。

いちばん大事な感覚

数は、別の底で書いたからといって値そのものが変わるわけではありません。変わるのは表し方だけです。

たとえば、10進数の 4545 は、2進数・8進数・16進数のどれで書いても同じ量です。底が違うというのは、同じ量を別の言語で表しているようなものです。

1つの重要な例:4545 を2進数・8進数・16進数で書く

まず10進数から始めます。

45=32+8+4+145 = 32 + 8 + 4 + 1

これらは 22 の累乗です。

32=25,8=23,4=22,1=2032 = 2^5,\quad 8 = 2^3,\quad 4 = 2^2,\quad 1 = 2^0

したがって、2進数では 252^5232^3222^2202^0 の位に 11 が立ちます。

4510=101101245_{10} = 101101_2

次に、この2進数表記を使って8進数にします。8=238 = 2^3 なので、右から 33 桁ずつに区切ります。

1011012=101 1012101101_2 = 101\ 101_2

各グループが8進数の1桁になります。

1012=5,1012=5101_2 = 5,\quad 101_2 = 5

したがって、

4510=55845_{10} = 55_8

次に16進数にします。16=2416 = 2^4 なので、右から 44 桁ずつに区切ります。必要なら先頭に 00 を補います。

1011012=0010 11012101101_2 = 0010\ 1101_2

そして各グループを変換します。

00102=2,11012=13=D0010_2 = 2,\quad 1101_2 = 13 = D

したがって、

4510=2D1645_{10} = 2D_{16}

この3つはすべて同じ量を表しています。

4510=1011012=558=2D1645_{10} = 101101_2 = 55_8 = 2D_{16}

よくある間違い

よくある間違いの1つは、底が変わると位の値も変わることを忘れてしまうことです。文字列 101101 は、2進数・8進数・10進数で同じ意味にはなりません。

もう1つの間違いは、その底で使えない数字を使ってしまうことです。たとえば、2進数には 22 は使えず、8進数には 88 は使えません。

また、2進数を8進数や16進数に変換するときに、桁のまとめ方を間違えることもよくあります。右から区切り、完全なグループにならないときは先頭に 00 を補いましょう。

これらの数の体系はいつ使うのか

2進数は、スイッチが自然に2つの状態をもつため、デジタルシステムの基本的な言語になっています。8進数と16進数は、長い2進数の並びをコンパクトに書く方法です。

この考え方を理解するのに、コンピュータサイエンスの知識は必要ありません。これらの体系は、すべての位取り記数法に共通する基本ルール、つまり値は底と位によって決まるということを学ぶのに役立ちます。

似た変換をやってみよう

581058_{10} を2進数・8進数・16進数に変換してみましょう。まず 22 の累乗の和として表し、そのあと2進数の桁をまとめて残り2つの表し方を求めてみてください。

問題の解き方でお困りですか?

問題をアップロードすると、検証済みのステップバイステップ解答が数秒で届きます。

GPAI Solver を開く →