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