| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 622 人关注过本帖
标题:关于printf(%d)的问题
只看楼主 加入收藏
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:1 
关于printf(%d)的问题
我们知道,int函数是4个字节,那么输入0x98000000,应该不会溢出。
那为什么用printf函数输出的结果却是不对的呢?
注释:程序的最后一个scanf是为了停住窗口。
[local]1[/local][local]2[/local]
2016-07-22 09:06
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:10 
如果是无符号,0x98000000没有溢出。但是,%d是有符号输出,所以它的取值范围是为-2147483648~2147483647,
此时也会输出,不过是负数(为什么是负数应该能理解吧),
如果想要正确的输出,两个方法:1、提高精度;2、改用%u(因为%u是无符号十进制输出)。
2016-07-23 00:57
快速回复:关于printf(%d)的问题
数据加载中...
 
   



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

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