Pah*_*asa 3 c floating-point binary
我通过以下答案找到了一种在c中将浮点数转换为二进制的方法:在C中将float转换为二进制数,但是我不确定答案中使用的代码*((int*)&f)实际上是如何转换数字的。它到底是做什么的?
它调用未定义的行为,这意味着如果程序可以访问,则该程序无效。
某人打算这样做是将a的位重新解释float为int,假设int是32位,并且可能也是floatIEEE单。
有两种正确的方法(int用替换uint32_t为删除第一个无用的假设):
(union { float f; uint32_t i; }){f}.iuint32_t i; memcpy(&i,&f,sizeof i);