只要一次就能够收敛到很精确,误差不超过10^-3,经验证确实很神奇,放在这边慢慢看
float SquareRootFloat(float
number) {
long i;
float x, y;
const float f =
1.5F;
x = number * 0.5F;
y = number;
i = * ( long * )
&y;
i = 0x5f3759df - ( i >> 1 ); //注意这一行
y = * ( float *
) &i;
y = y * ( f - ( x * y * y ) );
y = y * ( f - ( x * y * y
) );
return number * y;
}
542

被折叠的 条评论
为什么被折叠?



