#1 楼
我认为这只是一个简单的转换。v29 = *reinterpret_cast< float* >( &v30 );
如果共享生成的程序集而不是伪代码,将会更容易。
#2 楼
就像WasserEsser所说的,这可能只是一个简单的转换。我在尝试反编译q_rsqrt函数时遇到了相同类型的转换。您可能像WasserEsser建议的那样通过使用强制转换来重新创建相同类型的行为,但是您也可能像下面的代码中那样使用联合:然后反编译为:
float Q_rsqrt( float number )
{
union {
float f;
uint32_t i;
} conv;
float x2;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
conv.f = number;
conv.i = 0x5f3759df - ( conv.i >> 1 );
conv.f = conv.f * ( threehalfs - ( x2 * conv.f * conv.f ) );
return conv.f;
}
评论
安装文件夹应具有一些带有宏,类型和常量声明的头文件。