細かい証明は知りませんが、一応参考に・・・
例えば、10進数14.375を2進数に直す場合、こんな方法があります。
手順
1.整数部と小数部は分けて計算する。
ここで先に14を直すと 1110となります。
つぎに小数部について考えます。
2.小数部に2をかける。この場合、0.375*2=0.75となります。
ここで、出た値の整数部分が1以上
(2進数の場合は1、基数がn⇒n以上)⇒
その整数部分を取り出して値を小数にしてまた2をかける。
それ以外(整数部分=0) ⇒ 0を取り出して(言い方が変です が)また2をかける。
今回の場合、後者ですから、 0.75*2=1.5となります。
これが最終的に0になるまで繰り返します。
1.5-1=0.5 0.5*2=1 1-1=0
ここで整数部分が0になったので、
3.取り出した順に並べる。この場合取り出した値は順に、011です から、頭に"0."をつけて答えは0.011となります。
これを筆算で表すと、
0.375
zzzzzz* 2
0 ← 0.750
↓zzzz* 2
1 ← 1.500 → 0.500
↓zzzzzzzzzzzzzz* 2
1 ←zzzzzzzzzzz 1.000 → 0.000 = 0
→ 0.011(うまく表せなくてスイマセン)
4.整数部と小数部をあわせる。この場合1110と0.011をくっつけて 答えは1110 . 011となります。
今回は、2進数なので2を基数としてやりましたがこれがn進数の場合は、基数をnに変えればどんな数でも変換することができます
(整数部分でも同様。但し、基数が10以上の場合は10以上の数を見やすくするため別の文字でくくる場合がある。例えば 10 → A など)。
最後に8,16進数の場合ですがこれらの値は2進数を3桁,4桁ごとに区切った値ですから10進数から2進数に直すことができれば、
i) 8進数の場合
1110 . 011を3桁ごとに区切って(整数部分は←方向に、小数部分は→方向に区切るもしも足りない場合は0を補う)この場合、
1 110 . 011 → 001 110 . 011 となりますからそれぞれ8進数に直して、 16 . 3となりますし、
ii)16進数の場合
でも同様で、
1110 . 011を4桁ごとに区切って
1110 . 011 → 1110 . 0110 となりますからそれぞれ16進数に直して、 E . 6となります。
かなり長くなってしまいましたがどうでしょうか?