| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 558 人关注过本帖
标题:[求助]进制转换问题
只看楼主 加入收藏
potato512
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-10-31
收藏
 问题点数:0 回复次数:3 
[求助]进制转换问题
进制转换问题:八进制转换成十进制
main()
{
char s[6],*p;
int n;
p=s;
n=0;
printf("\n========== intput 8jinzhishu ==========\n");
scanf("%s",p);
while(*p!='\0')
{
n=n*8+*p-'0';
p++;
}
printf("\n==========\n");
printf("\n%d",n);
getch();
}

问题就是“n=n*8+*p-'0';“
中的”-‘0’“是什么意思,不明白。但是去掉它运行时得到的结果就错,有了就不出错。
搜索更多相关主题的帖子: 八进制 十进制 
2006-11-05 21:39
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用potato512在2006-11-5 21:39:18的发言:
进制转换问题:八进制转换成十进制
main()
{
char s[6],*p;
int n;
p=s;
n=0;
printf("\n========== intput 8jinzhishu ==========\n");
scanf("%s",p);
while(*p!='\0')
{
n=n*8+*p-'0'; /* *p-'0'为了字符转化数字,这些同ASCII有关*/
p++;
}
printf("\n==========\n");
printf("\n%d",n);
getch();
}

问题就是“n=n*8+*p-'0';“
中的”-‘0’“是什么意思,不明白。但是去掉它运行时得到的结果就错,有了就不出错。


谁有强殖装甲第二部,可以Q我460054868
2006-11-05 21:56
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 

读入时*p
为字符,需按Ascal码原则转化


2006-11-06 14:33
baxia
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-3-10
收藏
得分:0 
'0'的 ACSII码是48 读入的是'0' 要是printf("%d",'0');你说打印是什么,答案不是0 而是48;
2006-11-06 16:44
快速回复:[求助]进制转换问题
数据加载中...
 
   



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

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