Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

一道C语言题目

[复制链接]
跳转到指定楼层
楼主
追云苍鹰 发表于 07-9-23 22:09:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
main()
{float x,y;
x=5:
y=3;
printf("x=%d y=%d\n",x,y);
}
最后的运行结果为什么是x=0 y=0?我不明白啊,希望各位高手赐教!
沙发
medical52001 发表于 07-9-23 22:25:18 | 只看该作者
可能强制转换类型的问题把
用\"x=%f y=%f \\n\",x,y
试试看
板凳
chun_137 发表于 07-10-29 14:49:44 | 只看该作者
看一下浮点数在内存中的存储形式就知道了..
地板
chun_137 发表于 07-10-29 15:32:20 | 只看该作者
详细给楼主说一下吧!
0        10000110    00001010000000000000000 是5的浮点数在内存中的存储形式。

数符    阶码            尾数
1位     8位             23位
这个是偏移量为127算得,因为阶码是按移码形式存储。
因为浮点数在内存中也是以补码形式存储。所以转换成源码
0011110011111011 0000 0000 0000 0000 输出
\"%d\"是按整形输出,所以截取后16位0000000000000000输出,所以输出0。
谢谢我吧,累死了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-19 15:37 , Processed in 0.086961 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表