はじめに
基本情報技術者の勉強を始めました。
いきなり進数っていうのにつまづいています。
なんとか理解できたので記事にしたいと思います。
進数
「N 進法」(エヌしんほう)とも呼ぶ。あらかじめ定められたN 種類の記号(数字)を列べることによって数を表す方法。N 進法で表記された数という意味で「N 進数」(エヌしんすう)と呼ぶことがある。
引用: https://ja.wikipedia.org/wiki/%E9%80%B2%E6%95%B0
とのことでn進数とかいうんですね。nには数字が入って、n種類の記号で数字を表現するということです。
我々が普段使っている数字は0〜9まで数えたら次は桁が繰り上がって10となります。
この表現の仕方を10進数とか10進法と言います。
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
上記の10種類の記号を使って表しているから10進数。
じゃあ、8進数で表すと
0, 1, 2, 3, 4, 5, 6, 7
上記の8種類の記号で数を表現します。
7まで数字を数えたら次は10になって10~17まで数えたら次は20となるわけです。
そしてコンピュータは2進数でデータの処理を行っています。
つまり0, 1
だけで表現しています。
「2進数で0から順番に数えてください」と言われたら
0, 1, 10, 11, 100, 101, 110, 111, 1000 ...
となります。
2進数で物事を考えるコンピュータは8進数や16進数との相性がいいと言います。
2進数で7までの数字を表現しようとすると0~111と三桁まで使いますが、8進数は一桁で2進数でいう111までを表現できます。
16進数も同様で0~15までを2進数で表現すると0~1111の四桁いっぱいを使いますが、16進数だと一桁で表現できます。
8進数と16進数は2進数でいうちょうど3桁いっぱい表現してくれる、ちょうど4桁いっぱいを表現してくれるという理由で相性がいいのです。
ちょまて16進数!?
てなりません??私もなりました。
16進数
我々は普段10進数で数字を表現しているので9の次は桁が繰り上がり、その10を一桁で表現する方法を知りません。
結論を言うと、16進数では9の次はAです。アルファベットで表現していきます。
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
この16種類で一桁を表現します。
Fまで数えて次が10です。
1Fまで数えて20です。
あまりなじみないので変な感じですが、これが16進数。
基数変換(n進数でいう○○)
n進数のnの部分を基数と言います。10進数なら10が基数です。
私たちはいろんな基数での数字の表現の仕方を学んだので、ここからは「n進数でいう○○」と言う考え方が非常に重要です。
例えば16進数のFは10進数でいう15だよね。と言う変換ですね。
2進数の1000は10進数の8だよね。。。みたいな感じです。
これを基数変換と言います。
数えられるくらいのものであれば頭の中や紙に書き出すことで導き出せると思いますが、もっと大きな数字で、小数点も入ってきたらもうわからんですよね。。。
計算によって基数変換のやり方があるので、その計算方法を次回記事でまとめてみたいと思います。(まだちゃんと理解できていない)
参考: キタミ式イラストIT塾基本情報技術者