我无法理解为什么这段代码的输出是2147483648:
#include <stdio.h>
int main (void){
float f = 2147483638;
printf("%f",f);
}
我试图使用IEEE 754标准找到浮点表示的解释但是使用我的计算我得到的输出应该是2147483520,而不是2147483648。 谢谢你的帮助!
答案 0 :(得分:2)
这就是float
对您的系统有效的方式。
请注意,C标准在浮点类型的类型和大小方面是有意灵活的。 float
不必须是IEEE754 32位浮点类型。