上へ CompactLong CompactPrecision CompactFFT
| |
プログラミング仕様 |
CompactLong |
最終更新日:2007/04/26 新規 |
●概要
多倍長語のクラスで、メソッド、プロパティを持つ。
●New
以下のNewにてインスタンスを生成する。
- Sub New(ByVal Value As SByte)
- Sub New(ByVal Value As Byte)
- Sub New(ByVal Value As Short)
- Sub New(ByVal Value As UShort)
- Sub New(ByVal Value As Integer)
- Sub New(ByVal Value As UInteger)
- Sub New(ByVal Value As Long)
- Sub New(ByVal Value As ULong)
- Sub New(ByVal Value As Decimal)
- Sub New(ByVal Value As Double)
- Sub New(ByVal Value As String)
- Sub New(ByVal Value As StringBuilder)
String/StringBuilder では、任意のリテラル数値(整数、固定小数点、指数表示など)が可能。最大、4096桁まで記述できる。
- Sub New(ByRef Value As CompactLong)
- Sub New(ByRef Value As Object)
- Sub New(ByVal Value As Long, ByVal Exp As Long)
Value * 10Exp なる数値が生成される。
●プロパティ
- ReadOnly Property Exponent() As Long
指数部を参照する。
- ReadOnly Property ArraySize() As Integer
512要素のInteger配列で、頭から有効な値が入っている要素数を参照する。
●メソッド
○値設定
現在のインスタンスに新しい値を設定する。
- Sub SetValue(ByRef Source As CompactLong)
- Sub SetValue(ByRef Source As Long)
- Sub SetValue(ByRef Source As Integer)
- Sub SetValue(ByRef Source As Double)
- Sub SetValue(ByRef Source As String)
- Sub SetValue(ByVal Sign As CompactSign, ByVal Exp As Long, ByRef
SourceArray() As Integer)
SourceArrayのInteger配列を値とする。SourceArrayはインスタンスにコピーされる。512より大きくても小さくても、512になる。正規化はされているものとする。
○現在値確認
- Function IsPositive() As Boolean
- Function IsNegative() As Boolean
- Function IsZero() As Boolean
- Function IsAbsOne() As Boolean
絶対値が、10n かどうか。
○新しい値を生成
- Function Clone() As CompactLong
現在のインスタンスのコピー。
- Function PartialValue(ByVal Start As Integer, ByVal Size As Integer) As
CompactLong
仮数部配列のStart番目から、Size要素で新しい値を生成する。指数部は、-Start*8 が加算される。
- Function IntegerPart() As CompactLong
整数部分で新しい値とする。
- Function FractionPart() As CompactLong
小数部分で新しい値とする。
- Function Abs() As CompactLong
現在値の絶対値を新しい値とする。
- Function ToLong() As Long
整数Longにできる場合はLongが生成される。
- Function CanBeLong(ByRef L As Long) As Boolean
整数Longにできる場合はLongがLに設定され、Trueが返る。そうでない場合はFalseとなる。
- Function ToDouble() As Double
実数Doubleにできる場合はDoubleが生成される。
- Function CanBeDouble(ByRef D As Double) As Boolean
実数Doubleにできる場合はDoubleがDに設定され、Trueが返る。そうでない場合はFalseとなる。
○入出力
- Function Description() As String
内容を物理ダンプする。仮数部は10進表示される。下図にダンプした例を示す。
Description例
- Function ToNumString(ByVal Format As NumFormat, Optional ByVal
LimitLength As Integer = 0) As String
値をFormat に従い固定小数点形式または指数形式の文字列で出力する。 固定小数点の場合は、有効な全桁数が表示されるが、指数が±2046の範囲外の場合は、指数表示になる。 指数表示の場合、表示仮数部の桁数をLimitLengthで制限できる。
下図は一例である。
ToNumString例(初めが、固定小数点表示、最後の行が指数表示)
- Sub StoreValue(ByVal FP As String)
- Sub LoadValue(ByVal FP As String)
CompactLongのバイナリ形式ファイルの入出力。FP
は、絶対パスを伴った任意のファイル名。
|