

| FX16_SHIFT | fx16型のためのシフト数(12)が定義されています。 |
| FX16_INT_SIZE | fx16型の整数部分のビット幅(3)が定義されています。 |
| FX16_DEC_SIZE | fx16型の小数部分のビット幅(12)が定義されています。 |
| FX16_INT_MASK | fx16型の整数部分のマスク(0x7000)が定義されています。 |
| FX16_DEC_MASK | fx16型の小数部分のマスク(0x0fff)が定義されています。 |
| FX16_SIGN_MASK | fx16型の符号部分のマスク(0x8000)が定義されています。 |
| FX16_MAX | fx16型が取りうる最大値(0x7fff)が定義されています。 |
| FX16_MIN | fx16型が取りうる最小値(0x8000)が定義されています。 |
| FX_FX16_TO_F32 | fx16型をf32型に変換します。 |
| FX_F32_TO_FX16 FX16_CONST |
f32型をfx16型に変換します。 |
#define FX16_SHIFT 12
#define FX16_INT_SIZE 3
#define FX16_DEC_SIZE 12
#define FX16_INT_MASK 0x7000
#define FX16_DEC_MASK 0x0fff
#define FX16_SIGN_MASK 0x8000
#define FX16_MAX (fx16)(0x7fff)
#define FX16_MIN (fx16)(0x8000)
#define FX_FX16_TO_F32(x) ((f32)((x) / (f32)(1 << FX16_SHIFT)))
#define FX_F32_TO_FX16(x) ((fx16)(((x) > 0) ?
(fx16)((x) * (1 << FX16_SHIFT) + 0.5f ) :
(fx16)((x) * (1 << FX16_SHIFT) - 0.5f )))
#define FX16_CONST(x) FX_F32_TO_FX16(x)
Ver. 2004/02/25