● サンプルプログラム
Sample6
簡易的な浮動小数点演算を行うスタティック・ライブラリ「float256.lib」を作成します。
FLOAT256構造体
(float256.h 参照の事)
typedef struct {
FIXEDVAL mantissa[FIXED_SIZE];
unsigned int exp;
int sign;
} FLOAT256,*PFLOAT256;
FLOAT256型の値.
sign = 0 の場合: mantissa × 2exp - 2147483648
sign = 1 の場合:−mantissa × 2exp - 2147483648
FLOAT256型の領域全体がゼロクリアされている場合は、ゼロを表現しているとします。
機能
本格的な浮動小数点エミュレータを目指している訳ではないので、機能は簡易的なものだけしか入れません。
必要に応じて追加・改造してください。
- 演算処理は加減乗除と比較、小数点以下の切捨て、double型との相互変換のみとします。丸めやオーバーフロー検出、文字列との相互変換等は機能に入れません(簡単な「数値 → 文字列」の変換は実演プログラムにあります)。
- 数学関数は自然対数、ex 、平方根、べき乗、三角関数を入れます。
- 定数 1 、π をエクスポートします。
- float256.lib の使用を支援する「CFloat256」クラスのスタティック・ライブラリを作成します。
実演プログラム
ほとんどの実演プログラムは CFloat256 クラスを使用します。
test1 〜 test6 はグラフィック描画です。
test1

test2

test3

test4

test5

test6

ウインドウを閉じると終了します。
test7 は、値を文字列に変換する処理の実演プログラムです(コンソールアプリケーション)。