UltraLong構造体 |
数値仕様 |
最終更新日:2006/10/17
修正 |
●構造体
構造体の要素は保護のため非公開で、必要なものは、メソッド、プロパティを通してアクセスする。
Public Structure UltraLong
Friend Mant() As Integer :仮数部を保持する可変長配列
Friend Exp As Integer :指数部
Friend Length As Integer :数値の桁数
Friend Sign As Integer :仮数部の符号
Friend Status As ULStatus :この数値の状態
・・・・・・・・・・・・・・
End Structure
●内部仕様
○形式
数値は、10進法の浮動小数点形式で表される。正規化状態は、
[符号]9.9999・・・・・9E±(指数)
となっている。世の中の標準は、0.999999 であるが、ここでは、9.999999
を正規化状態としている。深い意味は全くない。強いて言えば、1の位の数値の時、指数部が0 になる方が分りよいと言ううこと。 内部は、全てこの形式で演算している。
最大桁数は、別途定めるプロパティできまる(数10から100万程度)。
○構造
- 仮数部
可変長のInteger配列。サイズは数値によって決まる。一つの配列要素にて、0 から 99999999 までを表す、1億進数方式となっている。小数点は0桁目と1桁目の間にあるとしている。小数点なので、常に左揃えとなっている。3.4は、34000000
などである。これは、一種のBCDと言える。通常は4 ビットで1 桁を表すが、ここでは、32ビットで、8桁を表すことになる。
- 指数部
Integerにて符号付きで表す。とりあえず、Integerの範囲まで。
- 符号
仮数部は補数形式ではなく、符号情報で正負を区別する。0で正、1で負。
- 状態(ULStatus)
Normal、OverFlow、NaN、Emptyを表す。
Normal :正常
OverFlow :0で除算された
NaN :非数値状態
Empty :初期状態。インスタンスがない。
|