基数変換とは

スポンサーリンク

基数変換

基数法

まず、基数とは?
→「桁上りの基準の数」の事である。

10進数ならば、基数は10。

2進数ならば、基数は2。

その数を超えたら、桁が繰り上がる数の事を基数といいます。


では、基数法とは何か?
「基数」と「重み」と「値」を使用して表現する方法の事です。


「基数」→何進数の「何」(例えば2進数なら2)
「重み」→何桁目の数なのかを表す
「値」→その桁の数がどんな値なのかを表す

という事です。

例えば、10進数の「908.127」を基数法で表現してみましょう。

f:id:ideal_real:20170807234046p:plain


こんな感じになります。


要するに、以下を繰り返して表現する方法です。

f:id:ideal_real:20170811205743p:plain


基数変換の計算方法について


例えば、以下の値を基数法を利用して10進数で表現してみます。

f:id:ideal_real:20170811210415p:plain


つまりは、(14✕256)+(8✕16)+(12)= 3548+128+12

結果は「3688」となります。

10進数から「~進数」への変換(整数編)

(やること)
【元の数】を【表現したい進数】で割る。
割り算の結果を【表現したい進数】で割る。

これを繰り返す。

終了条件は「割り算の結果が0になった時」



(欲しい情報と整理方法)
割った数の「余り」が出る度に、右に詰めて格納する。



(例,1234を8進数に変換する。)

【一回目】
1234÷8= 154
1234÷8の余りは2


暫定結果→「2」


【二回目】


154÷8= 19
154÷8の余りは2

暫定結果→「22」

【三回目】

19÷8= 2
19÷8の余りは3


暫定結果→「322」

【四回目】

2÷8 = 0
2÷8の余りは2


割り算の結果が0になったので処理終了。

最終結果→「2322」となる。


10進数から「~進数」への変換(小数編)


(やること)
元の値✕表現したい進数。
掛け算の結果の整数部分を0にした値✕表現したい進数。

これを繰り返す。

終了条件は計算結果の小数部分が0になった時。


(欲しい情報と整理方法)

計算結果の整数部分を左に詰めて格納。


(例.(0.1)を3進数に変換する。)


【一回目】


0.1✕3= 0.3


暫定結果→0


【二回目】


0.3✕3 = 0.9


暫定結果→0.0


【三回目】

0.9✕3 = 2.7

暫定結果→0.02


【四回目】


0.7✕3= 2.1

暫定結果→0.022


【五回目】

0.1✕3= 0.3

暫定結果→0.0220


【六回目】


0.3✕3= 0.9


暫定結果→0.02200



【七回目】


0.9✕3= 2.7


暫定結果→0.022002


【八回目】


0.7✕3= 2.1


暫定結果→0.0220022



【ここまでで気づいたこと】


終了条件を満たさずに、永遠に計算を続けなくてはいけない事になる。



無限3進小数になるので、終了条件である小数部分が0という結果を得られないので、ここらで中断する。


結果としては、「0.0220022・・・・」となる