02/01/10 23:51 9A2ATft5
>>233
GameProgrammingGems2に興味深い記事があったよ。
(int)fは60サイクル使うけど、
IEEEの特徴を使ったトリックを使えば5サイクル程度でできるってよ。
typedef union{
int i;
float f;
}INTORFLOAT;
INTORFLOAT n;
INTORFLOAT bias;
bias.i = (23 + 127) << 23;
n.f = 123.456f; // 変換する浮動小数点値
n.f += bias.f;
n.i -= bias.i;
バイアスは固定だから、実質、
・浮動少数点加算
・浮動小数点レジスタから整数レジスタに転送
・整数減算
でできるってことみたい。