| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4212 人关注过本帖
标题:[求助]设有类型unsingned int a=65535,按%d格式输出a的值,为什么结果会是- ...
只看楼主 加入收藏
雾斓
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-14
收藏
 问题点数:0 回复次数:7 
[求助]设有类型unsingned int a=65535,按%d格式输出a的值,为什么结果会是-1呢?
有没有哪位老师可以告诉我下面这个问题是怎么回事啊?
设有类型unsingned int a=65535,按%d格式输出a的值,为什么结果会是-1呢?
很急哟,先谢谢了啊!
搜索更多相关主题的帖子: int unsingned 类型 格式 结果 
2007-07-14 11:47
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
用%u,就OK。

深山苦学C语言,终年不见外面世界。
2007-07-14 11:58
雾斓
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-14
收藏
得分:0 

非常感谢朋友的支持,不过,我始终不是很明白,我知道用%uc能达到目的,可就是搞不明白为什么用%d后的输出结果会是-1,能不能给我讲明白点!谢谢!

2007-07-14 13:49
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
回复:(雾斓)非常感谢朋友的支持,不过,我始终不是...
参考<计算机组成原理>中关于补码的部分
2007-07-14 16:43
gshzyfx
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-12
收藏
得分:0 

貌似这样:
在计算机中数值是按补码形式存放的.一个正数的补码是其本身,负数的补码要取反加 1 .
unsingned int a=65535在计算机中为 11111111 11111111;而%d是带符号的,所以要进行换算.
即 -1 取反 得 1000000 00000001, 符号位不变.所以得到 -1.

2007-07-14 16:53
yuqi0730
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-14
收藏
得分:0 
回复:(雾斓)[求助]设有类型unsingned int a=65535,...

当你知道INT型数据的取值范围就知道怎么会是这样的答案了

2007-07-14 17:22
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 
11111111 11111111作为unsigned时为65535,int时为-1

2007-07-14 23:20
雾斓
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-14
收藏
得分:0 
非常感谢各位的指点,我总算弄懂了!而且连带的这类的问题全都能解决了,我好开心,好感谢各位哟,有机会一定得好好谢谢你们!我的QQ是565101448,愿意当我老师加我哟,不过,我很笨哟
2007-07-17 13:13
快速回复:[求助]设有类型unsingned int a=65535,按%d格式输出a的值,为什么结果 ...
数据加载中...
 
   



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

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