今度は違う人から質問が来ました。
その人は「16進数」が知りたいらしいです。
「いやいや2進数と同じでしょ!」と思うのですが、わからない気持ちも理解でします。
前回のBLOGにも書いたように
10進数は「じゅう」って言ったら負け。
2進数は「に」って言ったら負け。
同じように考えれば16進数は「じゅうろく」って言ったら負けなだけなのです。
その人曰く
人間界には0~9の10個の数字しか存在しない。
2進数の場合0と1を使えば良い。
8進数の場合0~7を使えば良い。
ところが16進数の場合0~9では表現できない!
0~15だと、既に2桁になってるし!
ってかAとかBとか英文字でてきて意味わかんないし!
との事。
Aは一文字、つまり一桁ですよね。
B、C、D、E、Fも一桁ですよね。
16進数の場合0~F迄で16個の数字を表現します。
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
16個あるでしょ?
Fの次は?
Gではありません。
16個目の次は桁上がりです。
つまり10です。
下記、左が10進数で右が16進数の数字です。
0=0 1=1 2=2 3=3 4=4 5=5
6=6 7=7 8=8 9=9 10=A 11=B
12=C 13=D 14=E 15=F 16=10
16の所で桁上がりして10になりました。
念の為、もう少し途中経過を書きますね。
43=2B
94=5E
ですね。
こんなのどうやって計算するの!?
落ち着いて下さい、簡単です。
まず16進数を10進数に直す方法を書きます。
例として16進数の5Eを10進数にしてみましょう。
まず上の桁が5ですね、つまり16が5個集まっているのですよ。
まず16進数の50を10進数に直すと「16×5」で80です。
あとは下の桁のEですが…これは数えるしかないですね。
9、A、B、C、D、E = 9、10、11、12、13、14
16進数のEは10進数の14ですね。
さっきの80(50の10進数)と、今の14(Eの10進数)を足すと94です。
なので16進数の5Eを10進数に直すと94という事です。
A~Fを英文字として認識するのではなく、9以上の一桁の「数字」として認識すれば良いのですよ。
応用すると「20進数の場合は0~J迄を使えば良い」感じですね。
わかりましたか?
これで10進数以上も対応できますね!
0 件のコメント:
コメントを投稿