| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:大虾们进来帮帮忙忙解决个问题呀
只看楼主 加入收藏
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
结帖率:75%
收藏
 问题点数:0 回复次数:3 
大虾们进来帮帮忙忙解决个问题呀
int a=-1
printf("%d,%o",a,a);

输出的结果是:-1,177777
请问后面的177777是怎么得来的?说得越详细越好
我是新手,接触C没多久 麻烦站在我的角度回答问题

还有一个问题 我看过一本书上用八进制跟十六制表示-617的结果分别是(176627)8跟(fd97)16 
我都不知道结果是怎么得来的 难道负整数跟正整数化成别的进制时是有区别的吗?
搜索更多相关主题的帖子: 八进制 整数 
2008-06-12 01:10
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
没有区别。区别就在于你这个printf函数。。因为%o是输出一个无符号八进制数。。就拿-1为例子 实际上他在内存里面是0xffff原因你自己领悟吧。。把它转成无符号八进制就当然变成177777了。。

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-06-12 07:30
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
如果你想要正确输出的话建议你定义一个宏来输出这个八进制数
#define _oct_f(oct) (oct==abs(oct))?printf("%o",oct):printf("-%o",abs(oct))

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-06-12 07:41
gongjiandenghua
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-12 10:09
快速回复:大虾们进来帮帮忙忙解决个问题呀
数据加载中...
 
   



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

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