| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1664 人关注过本帖
标题:一道有趣的题,y 的值是多少?
只看楼主 加入收藏
buddy_zhang
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
收藏
得分:0 
回复 8 楼 寂 __ 痴
我可以这样理解吗
(1)y是double型,最后如果是printf(“%f”,y),则y此时的值应该是2.000000;
(2)此时是printf(“%d”,y),y从double剪切成int型。
(3)由于我的电脑是i386的小端格式,因为double是8个字节,int是4个字节,所以2.000000的低4字节存储了y的低字节,也就是0000H,高字节被丢弃,最后y的值为0000H
(4)所以最后y在进行输出的时候被剪切成0000H,所以打印出来y的值为0;
4楼厉害
2014-05-08 18:52
寂__痴
Rank: 2
等 级:论坛游民
帖 子:34
专家分:23
注 册:2014-4-25
收藏
得分:0 
回复 10 楼 buddy_zhang
对了,忘记小数点后面的字节了。。。。
我只想到2→10,然后怎么切都有2,所以就觉得奇怪。

C语言之路,慢慢走,慢慢领悟,才是硬道理!
2014-05-08 19:11
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
了解一下 IEEE754 浮点格式即可。
2014-05-08 19:21
buddy_zhang
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
收藏
得分:0 
回复 13 楼 top398
get
2014-05-08 21:21
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
double数据存储方式和int型差很多!不过%d确实输出的是最后4个字节,printf(“%d”,(int)y);大家可以研究下这样的输出。

kajj->1314 努力每一天。
2014-05-08 22:19
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
回复 15 楼 kajj_0321
再补一个,printf("%d\n", (double)(int)y);

梦想拥有一台龙芯3A-4000
2014-05-08 23:40
jvcson
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-9-22
收藏
得分:0 
回复 10 楼 buddy_zhang
2014-05-09 11:12
快速回复:一道有趣的题,y 的值是多少?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040670 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved