繁体   English   中英

c中整数到浮点数的隐式转换

[英]Implicit conversion of integers to floats in c

我无法理解为什么这段代码的输出是 2147483648:

#include <stdio.h>
int main (void){
    float f = 2147483638;
    printf("%f",f);
}

我试图找到使用 IEEE 754 标准进行浮点表示的解释,但使用我的计算,我得到输出应该是 2147483520,而不是 2147483648。感谢您的帮助!

这就是float在您的系统上工作的方式。

请注意,C 标准有意灵活处理浮点类型的类型和大小。 float不必是IEEE754 32位浮点型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM