2進、10進、16進


初歩なんですけどね。
ただ単に「自分が知らなくって大変だった」ということで書き残しておきます。
計算機がなくて、それぞれの変換をしたいときにでも。

8進は使用頻度が低いのでパス。
まあ、さすがに2進とか16進が何?ってのはどこかよそで調べてくださいませ。 数字の頭にくっついてる「H」は16進って印です。
A〜Fが入ってりゃわかるけど、数字だけだと区別つきませんからね。

10進→16進

1068を例にとってみませう。

まず、元の数を16で割ります。
intの計算ね。
小数点まで出しちゃダメよ。余りが肝心。

1068/16=66・・・12

余りが12なんで、下一桁目は12を16進にして「C」

商の66をさらに16で割る。
66/16=4・・・2

なので、下二桁目は余りの2を16進にして「2」

4はもう16で割れないので、下三桁目は4を16進にして「4」

というわけで、10進の1068を16進に直すと「H42C」となるわけですね。

商が16で割れなくなるまで繰り返して、余りをくっつけていくだけです。

では、今度は今求めたH42Cを2進にしてみましょうね。 10進からだと面倒だけど、16進からなら、とっても簡単。

16進→2進

それぞれの桁に分けて2進に直してくっつけるだけ。

4→0100
2→0010
C→1100

くっつける〜。
0100|0010|1100

最初の0は書いても書かなくても、どっちでもいいの。
でも、ビット演算とかするときにはつけときましょうね。
基本は4桁で一区切り。

H42C=10000101100

んじゃ、最後。

16進→10進
10進→16進の逆をやればよいだけですね。

それぞれの桁を10進に直してから、
(下一桁目*1)+(下二桁目*16)+(下3桁目*16*16)・・・(以下続く)
とするだけです。

要するに、(下からの桁数 * 16の(下からの桁数-1)乗)を足しつづければいいってことですな。
見りゃわかると思うけど、下一桁目のときだけは0じゃなくて1を掛けてくださいね。

H42Cでは、

(12)+(2*16)+(4*16*16)=1068

となりますですね。


はい。今じゃそんなに使わないけど、一時期ビット演算に泣きましたもので・・・。
まあ、計算機がなけりゃ掛算や割り算がめんどくさいし、あれば計算機で16進10進変換するだけなんであんま使うこともないでしょうがね。
一応考え方ということで。