n進数・基数変換について説明。コンピュータで使われるn進数とは

普段私たちは 0 – 9 までの数字を使う「10進数」という数の体系を使っている。

これに対しコンピューターが計算する時には「2進数」「16進数」などといった、少し違った形で計算をしている。

この2進数や16進数とはなんなのか。また、どのようにして普段使っている10進数以外の数の形を使うことができるのか、説明していく。


そもそもn進数とは?

n進数とは、「一桁にn個集まったら桁が上がる」ことを表す数字のこと。

最も身近に使われている10進数について考えると、「0,1,2,3,4,5,6,7,8,9と10こ集まったら桁が上がる」

と考えることができる。


n進数の具体例

n進数は具体的にどのように使われているだろうか?


お金の数え方は10進数


n進数・基数変換について説明。コンピュータで使われるn進数とはー10進数の例


10進数の身近な例としてはお金が挙げられる。

1円が10枚集まれば100円になるし、100円が10枚集まると1000円になる。

時計の進み方は60進数


n進数・基数変換について説明。コンピュータで使われるn進数とはー60進数の例


1秒が60集まれば1分になるし、1分が60集まれば1時間になる。

普段私たちは時間を60進数で見ている。


コンピューターでよく使われるn進数

お金や時間などの例を使ってn進数の例を見てきた。

コンピューターでよく使われるn進数として、2進数と16進数が挙げられる。


2進数

2進数は、下の位が、0,1と2個集まったら桁が上がる数になる。



2進数の例

2進数と10進数を比較すると、下記のようになる。

2進数10進数
00
11
102
113
1004
1015
1106
1117
10008
10019
101010



なぜ2進数が使われるのか?

コンピューターは電子回路の集まりなので、それぞれの回路で、「電流が流れたら1、電流が流れてなかったら0」という形で情報を受け取る。


n進数・基数変換について説明。コンピュータで使われるn進数とはービット


この電子回路で受け取った情報「1」と「0」を使って計算するのに相性の良い方法として2進数が使われるようになった。

詳しくは下記に書いた。


[st-card myclass=”” id=4519 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]


16進数

16進数は、下の位が、0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15と16個集まったら桁が上がる数になる。

コンピューターの分野では、0から16までの数字の代わりに、0から9までの数字と英字のA, B, C, D, E, Fが使われる。


16進数の例

以下は2進数、10進数、16進数を比較した表になる。

2進数10進数16進数
0000000000
0000000111
0000001022
0000001133
0000010044
0000010155
0000011066
0000011177
0000100088
0000100199
0000101010a
0000101111b
0000110012c
0000110113d
0000111014e
0000111115f
000100001610


16進数を使うメリット

コンピューターは基本的に2進数で計算すると説明したが、2進数だけで計算をすると、桁数が長くなりがちになる。

16進数によって二進数を短く表現することで、人間にも分かりやすくなる。


なぜ16進数が相性がいいの?


n進数・基数変換について説明。コンピュータで使われるn進数とは


16進数の一つの桁の範囲である0 – 15 を二進数で表すと 0000 – 1111 と表現でき、2進数の4桁分の数字を16進数で1桁で表現できるから。

8進数も、一つの桁の範囲である0 – 7を2進数000 – 111と表すことができるため、2進数の3桁分の数字を1桁で表現できるが、現在は16進数が主流で使われている。


基数とは

n進数には「基数」という概念があり、位が変わる時の基準となる数を表している。

例えば、富士山の高さ3,776.12mを位ごとに表す。


n進数・基数変換について説明。コンピュータで使われるn進数とはー基数とは


という風に位を考えることができる。

専門用語として、基数、重みという言葉がある。


n進数・基数変換について説明。コンピュータで使われるn進数とは


例えば10³ × 3の部分を例に取ると

  • 基数:10(位が変わる時の基準)
  • 重み:10³(基数を累乗した数。10³ = 1000)

となる。


n進数の重みを比較

2進数、10進数、16進数の重みを比較すると下記の通り。

3210小数点-1-2
10進数10³ (=1000)10² (=100)10¹ (=10)10⁰ (=1).10⁻¹ (= 1/10 = 0.1)10⁻² (= 1/100 = 0.01)
2進数2³ (=8)2² (=4)2¹ (=2)2⁰ (=1).2⁻¹ (= 1/2 = 0.5)2⁻² (= 1/4 = 0.25)
16進数16³ (=4096)16² (=256)16¹ (=16)16⁰ (=1).16⁻¹ (= 1/16 = 0.0625)16⁻² (= 1/256 ≈ 0.0039)
n進数n⁰.n⁻¹n⁻²

二進数だけの計算だと、桁が長くなり過ぎてしまい、人間が読み取るにはとても難しくなってしまう。

なので2進数⇄10進数⇄16進数⇄その他必要に合わせてn進数を変換する作業を行うことで、必要な基数を使って計算を行うことができる。


基数変換

2進数から10・16進数に変えたり、16進数から2・10進数に変換するなど、基数を変換するにはどのようにしたら良いだろうか。


n進数→10進数

例として、5進数の123.21を10進数に変換する。

変換するときは、それぞれの重みに桁ごとの数字を当てはめていく。


n進数・基数変換について説明。コンピュータで使われるn進数とは


10進数→n進数

例として、10進数の40を5進数に変換する。

10進数から変換する際は、割り算を行うことで、変換することができる。


n進数・基数変換について説明。コンピュータで使われるn進数とは


割り算した結果の余りの部分がn進数で変換された数字となる。

今回の例なら10進数の40は5進数では130となった。


2進数→16進数

2進数の01111011を16進数に変換する場合は、4桁ごとに数字を区切ることで、変換が簡単になる。


n進数・基数変換について説明。コンピュータで使われるn進数とは


16進数→2進数

16進数の4Fを2進数に変換する際も、16進数の各桁を2進数4桁にばらすことで変換できる。



コンピュータの全体像

コンピュータの全体像を知ると、数学とコンピューターサイエンスの結びつき方もより深く理解できる。

こちらにコンピューターサイエンスの全体像についてまとめた。


[st-card myclass=”” id=4587 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]