● 型

FLOATEX型とのデータ変換

floatex.dll には、C/C++で扱う型とFLOATEX型のデータ変換を行う関数が用意されています。
関数は、リファレンスの「データ変換」を参照してください。

32 bit 以下の整数型との変換

int型には long型用の floatex_tolongfloatex_longto を使用します。unsigned int型の場合も同様に、floatex_toulongfloatex_ulongto を使用します。

long型よりも小さな整数型の場合は、値をキャストして使用します。
例.

    short       sval;

    sval = (short)floatex_tolong(val);

値の範囲チェックは、必要に応じて行ってください。

例.

    FLOATEX     smax = { 0, 0, 0, 0, 0, 0, 0xfe, 0xff, 0xd, 0x40 }; /* 32767 */
    FLOATEX     smin = { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xe, 0xc0 };    /* -32768 */
    short       sval;

    if (floatex_comp(val,smax) > 0) || floatex_comp(val,smin) < 0)
        オーバーフロー
    else
        sval = (short)floatex_tolong(val);


上限、下限バイナリデータ
1270, 0, 0, 0, 0, 0, 0, 0xfe, 5, 0x40
-1280, 0, 0, 0, 0, 0, 0, 0x80, 6, 0xc0
2550, 0, 0, 0, 0, 0, 0, 0xff, 6, 0x40
327670, 0, 0, 0, 0, 0, 0xfe, 0xff, 0xd, 0x40
-327680, 0, 0, 0, 0, 0, 0, 0x80, 0xe, 0xc0
655350, 0, 0, 0, 0, 0, 0xff, 0xff, 0xe, 0x40
21474836470, 0, 0, 0, 0xfe, 0xff, 0xff, 0xff, 0x1d, 0x40
-21474836480, 0, 0, 0, 0, 0, 0, 0x80, 0x1e, 0xc0
42949672950, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x40