| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 706 人关注过本帖
标题:小弟是初学者 帮我看个程序 解释一下谢谢
只看楼主 加入收藏
雨夜梧桐
Rank: 2
等 级:论坛游民
帖 子:63
专家分:89
注 册:2010-6-4
结帖率:83.33%
收藏
 问题点数:0 回复次数:7 
小弟是初学者 帮我看个程序 解释一下谢谢
#include<stdio.h>
int main()
{
short i;
i=-4;
printf("\ni:%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);
return 0;
}      
输出时这个样子;
i:-4,oct=37777777774,hex=fffffffc,unsigned=4294967292
Press any key to continue
为什么以八进制六十进制的输出是这个样子,而不是换算成十进制为-4呢?
谢谢!
搜索更多相关主题的帖子: 解释 
2010-11-22 11:48
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
十进制的-4转换成八进制和十六进制时,先转为二进制为:1111111111111111111111111111100;
再转为八过制就是:377777777774;转为十六进制就是:fffffffc;

经验积累中............
2010-11-22 12:01
雨夜梧桐
Rank: 2
等 级:论坛游民
帖 子:63
专家分:89
注 册:2010-6-4
收藏
得分:0 
回复 2楼 五当家
您的意思是整形在计算机的储存是以二进制的补码形式,然后转换成八进制,十六进制,那为什最后的%u输出是
4294967292呢?小弟是初学者,遇到了很多问题,身边没有会C语言的,问的可能太简单了。见谅。
#include<stdio.h>
int main()
{
short i;
i=4;
printf("\ni:%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);
return 0;
}      
为什么改成i=4的输出是

i:4,oct=4,hex=4,unsigned=4
Press any key to continue
2010-11-22 12:15
袁野
Rank: 2
来 自:湖北省
等 级:论坛游民
帖 子:45
专家分:56
注 册:2010-10-13
收藏
得分:0 
这还是初学者?
气死我也
2010-11-22 14:17
seglex
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2009-8-15
收藏
得分:0 
支持一下,还不太董
2010-11-22 14:50
JIE55555LI
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-2
收藏
得分:0 
在计算机中,数的存储是以补码的形式存在的

4为正数,它的补码为它的源码:
二进制:0000 0000 0000 0000 0000 0000 0000 0100
八进制:00000000004 = 4
十六进制:00000004 = 4
十进制为:4

-4为负数,它的补码由它的绝对值4的源码取反再加1得到:
二进制:1111 1111 1111 1111 1111 1111 1111 1100
八进制:37777777774 = 37777777774
十六进制:FFFFFFFC = FFFFFFFC
十进制为:4294967292

注:因为输出结果都是32位的,故这里的计算使用32位
2010-11-22 16:33
雨夜梧桐
Rank: 2
等 级:论坛游民
帖 子:63
专家分:89
注 册:2010-6-4
收藏
得分:0 
回复 4楼 袁野
此话怎讲?
2010-11-22 21:30
雨夜梧桐
Rank: 2
等 级:论坛游民
帖 子:63
专家分:89
注 册:2010-6-4
收藏
得分:0 
回复 6楼 JIE55555LI
谢谢
2010-11-22 21:30
快速回复:小弟是初学者 帮我看个程序 解释一下谢谢
数据加载中...
 
   



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

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