有招呀,我有一个算法是算开根号分之一,效率很高呀,你要开根号要在用1除这个数,
这个程序是老外写的,真牛,但我估计也应该有直接开根号的算法呀,
static float invSqrt(float number)
{
volatile long i;
volatile float x, y;
volatile const float f = 1.5F;
x = number * 0.5F;
y = number;
i = * (( long * ) &y);
i = 0x5f375a86 - ( i >> 1 );
y = * (( float * ) &i);
y = y * ( f - ( x * y * y ) );
return y;
}
|