社区
C语言
帖子详情
一个关于printf();输出格式问题
BIMOZHI
2011-03-04 10:20:48
#include<stdio.h>
void main ()
{
float a,b;
a=5;
b=3;
printf("a=%d b=%d\n",a,b);//故意的%d
}
输出 a=0 b=1075052544 为什么?(b的值小于2^32)
我开始以为是printf()有输出缓冲问题,把a的值改成很大,最后输出a仍然是零,只是b的值稍微变了点(后几位)我也用vc6.0调试了可是调试不出来,我的win7 32位系统
...全文
125
11
打赏
收藏
一个关于printf();输出格式问题
#include void main () { float a,b; a=5; b=3; printf("a=%d b=%d\n",a,b);//故意的%d } 输出 a=0 b=1075052544 为什么?(b的值小于2^32) 我开始以为是printf()有输出缓冲问题,把a的值改成很大,最后输出a仍然是零,只是b的值稍微变了点(后几位)我也用vc6.0调试了可是调试不出来,我的win7 32位系统
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cd2008
2011-03-04
打赏
举报
回复
参考
http://zh.wikipedia.org/wiki/IEEE_754
和
http://en.wikipedia.org/wiki/IEEE_754-1985
去
BIMOZHI
2011-03-04
打赏
举报
回复
http://hi.baidu.com/%D7%F8%D7%F8%B0%C9%B0%DD%B6%C1/album/item/04905e1fa270dbaeae51335a.html#
不能看,到我的空间里看看
BIMOZHI
2011-03-04
打赏
举报
回复
canshui
2011-03-04
打赏
举报
回复
[Quote=引用 6 楼 hnuqinhuan 的回复:]
浮点数 和int的存储格式不一样
[/Quote]
就因为这个……
BIMOZHI
2011-03-04
打赏
举报
回复
右下角的调试信息表明a b内已经是正确的值了,可用printf()下后变为那样了呢?
無_1024
2011-03-04
打赏
举报
回复
浮点数 和int的存储格式不一样
w0911h
2011-03-04
打赏
举报
回复
浮点数在内存中有符号位,阶码和尾数三部分,和整型的存储方式不一样,你这样是直接把本来被解释成浮点型的内存解释成整型,自然就错了
http://zhaojinguorui.blog.163.com/blog/static/16596290200862705010554/
饥饿书生
2011-03-04
打赏
举报
回复
楼上正解,
你可改成 printf("a=%f, b=%f\n");
BIMOZHI
2011-03-04
打赏
举报
回复
是呀,可vc6.0 的输出两个怎么不都是零啊
flyerwing
2011-03-04
打赏
举报
回复
[Quote=引用 1 楼 justkk 的回复:]
浮点数与整数的表示方式是不一样的
你这样就是用整数的方式来解释一个浮点数
[/Quote]
好象是这样的吧.
justkk
2011-03-04
打赏
举报
回复
浮点数与整数的表示方式是不一样的
你这样就是用整数的方式来解释一个浮点数
C语言
70,023
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章