そもそも16進数とは
10進数は数量を0, 1, 2, 3, 4, 5, 6, 7, 8, 9で表しますが、16進数は0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15)で表します。
10進数の場合、9の次の数字が10となり桁上がりしますが16進数の場合はまだ続きがあるので9の次はAとなります。16進数の場合Fの次がようやく『10』となります。16進数の10は10進数で表すと16となります。
10進数 | 16進数 |
---|---|
9 | 9 |
10 | A |
15 | F |
16 | 10 |
10進数の場合はよく右から『1の位』『10の位』『100の位』と呼びますが、16進数の場合は『1の位』『16の位』『256(=16×16)の位』となっています。さらに右から4桁目が存在した場合は4096(=16*16*16)の位になります。桁が増える毎に16が掛けられていきます。
10進数から16進数へ変換する
例えば10進数で12345という数字があります。この時、100の位はどんな数字ですか?
100の位は右から3桁目だから3でしょ?
まあ見れば分かりますよね。これをあえて式で算出してみるとこんな感じになります。
12345÷10=1234あまり5
1234÷10=123あまり4
123÷10=12あまり3
10で割っていくとそれぞれあまりが1の位、10の位、100の位を表す数になります。
12÷10=1あまり2
1÷10=0あまり1
そのまま計算を続けていくと1000の位、10000の位も算出できました。
これは10進数の桁数計算なので10で割りましたが、16で割ると16進数が算出できます。
例題:10075を16進数に直す
商が0になるまで16で割り続けます。
10075÷16=629あまり11
629÷16=39あまり5
39÷16=2あまり7
2÷16=0あまり2
あまりが下から2, 7, 5, 11。11は16進数でBです。これを並べると275B。
10075を16進数に直すと275Bになります。
複雑に見えますが16進数から10進数に変換したときと逆のことをしようとしているだけです。