我发现下面的代码,它计算log2
的float x
:
union { float f; unsigned int i; } vx = { x };
float y = vx.i;
y *= 1.0 / (1 << 23);
y = y - 126.94269504f;
return y;
Run Code Online (Sandbox Code Playgroud)
f
union 的参数初始化为输入x
然后使用i
?我无法理解它是如何使用未初始化的东西的.vx.i
实际上有什么价值?谢谢.