10進数をn進数に変換 Last modified: May 15, 2002
10進整数を2進数表現で表すやりかたは中学くらいで習うのかな?
(365)10 という表記を「10進数で表した365」ということにする。
これを16進数表現するときには,
16)365 … 13→D 1桁目
~~~~~~~~
16) 22 … 6→6 2桁目
~~~~~~~~
16) 1 … 1→1 3桁目
~~~~~~~~
0
として,(16D)16 となるわけ。
では,10進小数をn進数表現するのは?これは,案外教えない。
(0.986)10 を16進表現するときは,
0.986
× 16
~~~~~~~~~~~~~~
15.776 整数部15を小数点以下1桁目とする。
0.776 小数部を次に取り出して16を掛ける。
× 16
~~~~~~~~~~~~~~
12.416 整数部12が小数点以下2桁目。
0.416
× 16
~~~~~~~~~~~~~~
6.656 整数部6が小数点以下3桁目。
0.656
× 16
~~~~~~~~~~~~~~
10.496 整数部10が小数点以下4桁目。
0.496
× 16
~~~~~~~~~~~~~~
7.936 整数部7が小数点以下5桁目。
0.936
× 16
~~~~~~~~~~~~~~
14.976 整数部14が小数点以下6桁目。
以下同じように繰り返して,
(0.FC6A7EF9DB22D0E…)16 となる訳ですね。
非常に長い循環小数です。
それで,有限の長さを持つコンピュータのメモリには近似値しか
入らないということ。
JavaScriptで計算してみる
直前のページへ戻る
E-mail to Shigenobu AOKI