一道C语言题目

追云苍鹰 免费考研论坛/2007-09-23

原文内容来自免费考研论坛,请点击查看全文
http://bbs.freekaoyan.com/viewthread.php?tid=193025
main()
{float x,y;
x=5:
y=3;
printf("x=%d y=%d\n",x,y);
}
最后的运行结果为什么是x=0 y=0?我不明白啊,希望各位高手赐教!
---------------------------------
可能强制转换类型的问题把
用"x=%f y=%f \n",x,y
试试看
---------------------------------
看一下浮点数在内存中的存储形式就知道了..
---------------------------------
详细给楼主说一下吧!
0 10000110 00001010000000000000000 是5的浮点数在内存中的存储形式。

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

相关话题/

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19