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

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

数値変換

整数部分(IntegrPart)

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

●概要

 MegaLong の整数部分をMegaLong として取り出す。

●方法

  1. IntegerPart = Me.Copy
    Me は、元のMegaLong
    IntegerPart は、整数を表す新しいMegaLong で、取りあえずコピーしておく。
  2. Zero のときは、Zero。
  3. Overflow、NaN の場合は、その通りを返す。
  4. Exp ≧ Length であれば、これは元々整数なので、そのままを返す。
  5. Exp < Length の場合は、小数部が存在するので以下のように小数部をカットする。(下図の例参照)


    Dim Ix As Integer = (Me.Exp - 1) \ 8            '整数部末尾の要素番号
    Dim L As Integer = (Me.Exp - 1) Mod 8        '1の位の桁番号
    ReDim Preserve IntegerPart.Mant(Ix)          '不要な小数用要素を除去
    If L < 7 Then
       IntegerPart.Mant(Ix) = (IntegerPart.Mant(Ix) \ NormT(L)) * NormT(L)
       'この演算で、余計な小数桁を0 にしている
    End If
    IntegerPart.Length = Me.Exp      '有効桁数