# fx64c型用のマクロ

## 説明

FX64C_SHIFT | fx64c型のためのシフト数(32)が定義されています。
FX64C_INT_SIZE | fx64c型の整数部分のビット幅(31)が定義されています。
FX64C_DEC_SIZE | fx64c型の小数部分のビット幅(32)が定義されています。
FX64C_INT_MASK | fx64c型の整数部分のマスク(0x7fffffff00000000)が定義されています。
FX64C_DEC_MASK | fx64c型の小数部分のマスク(0x00000000ffffffff)が定義されています。
FX64C_SIGN_MASK | fx64c型の符号部分のマスク(0x8000000000000000)が定義されています。
FX64C_MAX | fx64c型が取りうる最大値が定義されています。
FX64C_MIN | fx64c型が取りうる最小値が定義されています。
FX_FX64C_TO_F32 | fx64c型をf32型に変換します。
FX_F32_TO_FX64C FX64C_CONST | f32型をfx64型に変換します。

## マクロの定義

    #define FX64C_SHIFT          32
    #define FX64C_INT_SIZE       31
    #define FX64C_DEC_SIZE       32

    #define FX64C_INT_MASK       ((fx64c)0x7fffffff00000000)
    #define FX64C_DEC_MASK       ((fx64c)0x00000000ffffffff)
    #define FX64C_SIGN_MASK      ((fx64c)0x8000000000000000)

    #define FX64C_MAX            ((fx64c)0x7fffffffffffffff)
    #define FX64C_MIN            ((fx64c)0x8000000000000000)
    #define FX_FX64C_TO_F32(x)   ((f32)((x) / (f32)(1 << FX64C_SHIFT)))
    #define FX_F32_TO_FX64C(x)   ((fx64c)(((x) > 0) ? \
                                          ((x) * ((fx64c)1 << FX64C_SHIFT) + 0.5f ) : \
                                          ((x) * ((fx64c)1 << FX64C_SHIFT) - 0.5f )))

    #define FX64C_CONST(x)      FX_F32_TO_FX64C(x)

## 履歴

Ver. 2004/02/25