计算机魔法-快速平方根倒数

快速平方根倒数

2026-02-05 14:26

1 分钟 阅读

算法源码

float Q_rsqrt( float number )
{
	long i;
	float x2, y;
	const float threehalfs = 1.5F;

	x2 = number * 0.5F;
	y  = number;
	i  = * ( long * ) &y;           // 将浮点数按位解释为整数
	i  = 0x5f3759df - ( i >> 1 );   // 魔法般的近似
	y  = * ( float * ) &i;           // 再解释回浮点数
	y  = y * ( threehalfs - ( x2 * y * y ) );   // 一次牛顿迭代提高精度
	return y;
}

待续…