首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于数据类型不匹配的一个超简单有关问题

2012-02-20 
关于数据类型不匹配的一个超简单问题inta3floatb4.5printf( %f%d\n ,a,b)编译时不出错,但结果为0.0

关于数据类型不匹配的一个超简单问题
int         a=3;  
float     b=4.5;
printf( "%f   %d\n ",a,b);
编译时不出错,但结果为       0.000000   16402

为什么会出现这个结果?   尤其是   整型a   用符点型输出时,就算类型不匹配,也不应该是0.000000呀?

多谢前辈请给笨蛋详细的指导。多谢。

[解决办法]
没明白为什么会出现0。000000 有没有人帮我解释一下呀
==========
按照IEEE单精度浮点数格式,最高位是符号位,接下来8位是指数位,剩下的23位是尾数位
所以整数3,0x00000003表示的浮点数就是
2^{-127} * (1.0 + 2^{-22} + 2^{-23})
这个数是一个非常小的数,显示出来就是0.000000啦

具体细节请参考
http://en.wikipedia.org/wiki/IEEE_754

热点排行
Bad Request.