ホーム ] 多倍長語 MegaLong ] 基数変換 ] 数値変換 ] 定数システム ] 演算時間予測システム ]

上へ
整数 → MegaLong
実数 → MegaLong
10進数 → MegaLong
文字列 → MegaLong
整数部分
小数部分
部分値
MegaLong → Long
MegaLong → Double
文字列変換

数値変換

文字列 → MegaLong

最終更新日:2007/04/26 新規

●概要

 文字列とは、String、StringBuilder で表された数値を言う。

●方法

 文字列の数値は、一般的に、

 [符号] [999・・・9.999・・・・9] [指数]

なる形式で表現されたものを対象にする。スペースやカンマは無視される。符号、指数はあってもなくても良い。指数は、E999・・・9、E±999・・・9 など。数値部の小数点もあってもなくても良い。数値部の桁数は100万桁まで。この文字列で、すべてのMegaLong 数値範囲を表現でき、入力できるが、変換速度は一番遅い。

・[符号]

 仮の符号を以下のように決める。

  • + または数字:Positive
  • -        :Negative

・[999・・・9.999・・・・9]

  1. 予め、符号を除外し、文字"E" で、文字列をSplit しておく。
  2. 数値部がない。Zero とする。
  3. 数値部のリーディングゼロを除去し、小数点"." で Split する。
     ・配列が一つの場合は、小数点なし → 整数として処理。桁数を記録。後ろの余計な 0 を除去。
      ・配列が二つの場合は、最初の要素が整数部、残りが小数部となる。小数部の後ろの余計な0 を除去。小数点の位置を記録。
  4. 小数点を除去した数字のみ文字列にし、桁数が 8 の倍数になるよう、後ろに 0 を付加。

頭から、8桁づつ、数値化し、仮数部配列に格納する。

・[指数]

 あれば処理する。

・正規化

 仮数部は既に正規化されているので、整数桁数、小数点位置、指数などで指数と桁数を決定する。