r進数から10進数への変換
r進数のrはradixの頭文字。radixは位取り記数法の基数を意味している。底(base)とも呼ぶ。10進法は0から9までの10個の数を用いるので基数は10となる。2進法では0と1の2つだけの数を用いるので基数は2となる。16進数では0から9までとA, B, C, D, E, Fの計16個の数が用いられるので基数は16となる。
2進数から10進数への変換
例えば1101という2進数を10進数へと変換するには次のように計算する。丸括弧は見やすいように付けた。角各個の添字が基数。各位の値に各位の重み
2進数である1101を10進数へ変換すると13になった。2進数はその各位の数を
じゃあ、小数点がある場合はどう計算するのか。例えば1.011という2進数を10進数へと変換するには次のように計算する。各位の値を各位の重み
2進数である1.011を10進数へ変換すると1.375になった。小数点以下は分数の掛け算になる。ただし、分数を掛けることはその分数の分母と分子を入れ替えた逆数で割ることと同じ、つまり
3進数から10進数への変換
例えば2120という3進数を10進数へと変換するには次のように計算する。2進数では2だった部分が3進数では3になっていることを確認されたし。
3進数である2120を10進数へ変換すると69になった。2進数から10進数への変換のための計算式と3進数から10進数への変換のための計算式との違いに注目。
例えば2.102という3進数を10進数へと変換するには次のように計算する。
3進数である2.102を10進数へ変換すると2.370370370...になった。
4進数から10進数への変換
例えば1032という4進数を10進数へと変換するには次のように計算する。
4進数である1032を10進数へ変換すると78になった。
例えば1.032という4進数を10進数へと変換するには次のように計算する。
4進数である1.032を10進数へ変換すると1.21875になった。
8進数から10進数への変換
例えば2475という8進数を10進数へと変換するには次のように計算する。
8進数である2475を10進数へ変換すると1341になった。
例えば2.475という8進数を10進数へと変換するには次のように計算する。
8進数である2.475を10進数へ変換すると2.619140625になった。
16進数から10進数への変換
例えば5CF2という16進数を10進数へと変換するには次のように計算する。
16進数である5CF2を10進数へ変換すると23794になった。
例えば5.CF2という16進数を10進数へと変換するには次のように計算する。
16進数である5.CF2を10進数へ変換すると5.80908203125になった。
r進数から10進数への変換
これらの実例からして、r進数から10進数への変換は一般に次のように計算することができそう。aは各位の数を表す変数、iは各位の大小関係を表す番号、rはr進数のrを表す基数、
小数点以上の位(整数部)の場合:
小数点以下の位(小数部)の場合:
r進数の位と10進数の位の対応表
10進数以外のr進数において各位のことを、1の位、10の位、100の位などとは普通は言わないかもしれないけれども、ここでは便宜的にそのように呼ぶことにする。ただし、10はジューとは読まずイチゼロ、100はヒャクとは読ますイチゼロゼロと読むことにする。ここでいう「重み」とは各位の数に掛ける数のことを指している。位取り記数法では各位の数は、その数掛ける各位の重みを意味する。
r進数の位(重み) | 10進数での重み |
---|---|
100000 = |
|
10000 = |
|
1000 = |
|
100 = |
|
10 = |
|
1 = |
|
ここから上が小数点以上 ここから下が小数点以下 | |
0.1 = |
|
0.01 = |
|
0.001 = |
|
0.0001 = |
|
0.00001 = |
例えば10.11がr進数だとして、この数の一番右端の0.01を10進数に変換したいとき、この表によれば、基数rの2乗分の1を掛ければよいことが分かる。分数を掛けるということはその分数の分母と分子を入れ替えた逆数で割ることと同じなので、その位の数である1を基数rの2乗で割ると10進数に変換される。
以上。10進数からr進数への変換、さらに2進数、4進数、8進数、16進数の間での相互変換についてはまたの機会に。
まとめ
r進数から10進数への変換は次のようなアルゴリズムを用いて行うことができる。
- r進数のrを求める。このrは自然数。この自然数がその数の基数となる。2進数ならば2のこと。
- r進数の各位(各桁)が整数の場合、その各位の値にその基数(r進数のr)のi乗を掛ける。
iは0から始まる各位の順番。nはその位が何番目(何桁)まであるかを示している。
- r進数の各位(各桁)が小数の場合、その各位の値をその基数(r進数のr)のi乗で割る。あるいは、その各位の値にその基数(r進数のr)のi乗分の1を掛ける。
はその位(桁)の重みと呼ばれている。 - 各位(各桁)に重みを掛けて得られた数(整数部と小数部)を総て足し合わせる。
左が整数部の総和で右が小数部の総和。IntとDecはr進法での各位の値。iは小数点に近いほうから数えた各位(各桁)の順番。ただし、整数部ではiが0から始まり、小数部ではiが1から始まることに要注意。
- その結果導かれた数が、とあるr進法の数を変換して得られた10進法の数であることを意味している。
コメント
コメントを投稿