| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:想請教幾個非常基礎的問題,謝謝!
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
第四個問題,跟printf()函數的處理機制有關:你指定了輸出數據以double型解讀,這是一個8字節的數據,而13/5是4字節的整型數據,但printf()函數要在內存中取8字節的內容來解讀,對Intel的機器,這種内存被解釋成浮點數零。

授人以渔,不授人以鱼。
2013-06-10 23:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你用下面的代碼看看結果:
程序代码:
    int x = 13, y = 5;
    double z = x / y;
    printf("%f, %f\n", z, x / y);

授人以渔,不授人以鱼。
2013-06-10 23:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你仔細琢磨了12樓代碼的結果,就應該明白一个基本的道理:應該循規蹈矩寫代碼,不要玩技巧!該用double變量儲存數據傳送給printf()的,就規規矩矩地定義中間變量,不要以爲省個變量空間的消耗很英明,結果往往是你想不到的,特別是偶然對偶然不對的時候,你查錯打破了頭也想不到問題居然在這種地方。

授人以渔,不授人以鱼。
2013-06-11 00:02
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
收藏
得分:0 
以下是引用TonyDeng在2013-6-10 23:40:56的发言:

第四個問題,跟printf()函數的處理機制有關:你指定了輸出數據以double型解讀,這是一個8字節的數據,而13/5是4字節的整型數據,但printf()函數要在內存中取8字節的內容來解讀,對Intel的機器,這種内存被解釋成浮點數零。

看完你的解釋,再加上 Susake 的
浮点数和整数的字节数不同,如0000 xxxxx(浮点数)
                                  xxxxx(整数)
这么一对齐,后面的精确不到.所有是0

明白了,謝謝
2013-06-11 23:11
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
收藏
得分:0 
以下是引用TonyDeng在2013-6-11 00:02:05的发言:

如果你仔細琢磨了12樓代碼的結果,就應該明白一个基本的道理:應該循規蹈矩寫代碼,不要玩技巧!該用double變量儲存數據傳送給printf()的,就規規矩矩地定義中間變量,不要以爲省個變量空間的消耗很英明,結果往往是你想不到的,特別是偶然對偶然不對的時候,你查錯打破了頭也想不到問題居然在這種地方。

其實我所貼上來的代碼是從書本中抄下來的,不過無論如何,多謝教誨,我會多多向各位學習的
2013-06-11 23:13
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
回复 13楼 TonyDeng
,版主真是太有心了!
2013-06-12 07:47
szgg520
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:79
专家分:307
注 册:2011-6-13
收藏
得分:0 
问题问的很有价值,楼主加油哟

[url=http://www.]深圳复印机出租[/url]
2013-06-12 08:44
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
收藏
得分:0 
以下是引用YJ_Hao在2013-6-12 07:47:07的发言:

,版主真是太有心了!

我很同意
2013-06-12 18:58
no_use
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2013-5-12
收藏
得分:0 
以下是引用szgg520在2013-6-12 08:44:05的发言:

问题问的很有价值,楼主加油哟

多謝你的鼓勵,我會加油的
2013-06-12 18:59
快速回复:想請教幾個非常基礎的問題,謝謝!
数据加载中...
 
   



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

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