| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:高手来给我解决下!
只看楼主 加入收藏
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
结帖率:86.21%
收藏
 问题点数:0 回复次数:5 
高手来给我解决下!
程序代码:
#include <stdio.h>
int main(void)
{
  char *p,s[6];
  int n;
  n=0;
  p=s; /*字符指针p指向字符数组s*/
  printf("输入你要转换的八进制数:\n");
  gets(p); /*输入字符串*/
  while(*(p)!='\0') /*检查指针是否都字符数组结尾*/
  {
    n=n*8+*p-'0'; /*八进制转十进制计算公式*/
    p++; /*指针后移*/
  }
  printf("转换的十进制是:\n%d\n",n);
  return 0;
}
这里面的n=n*8+*p-'0'是什么意思啊?
为什么要减'0',不减结果不对,干嘛要减?
搜索更多相关主题的帖子: color 
2011-01-03 14:59
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
*p - '0'是为了把字符'0'的值变为数值0,因为'1' - '9'紧跟后面,所以可以达到把'0' - '9'转换为0 - 9的目的

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-03 15:03
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:0 
输入的是字符....

要转化的....

不减去'0'的话   就是以字符的形式存在..
2011-01-03 15:41
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:0 
回复 2楼 御坂美琴
那直接写0为什么不行?要写‘0’?
2011-01-03 17:05
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
数字的0与字符的'0'是不同的

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-01-03 17:08
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
字符'0'ascii码是48 跟数字不同
2011-01-04 18:13
快速回复:高手来给我解决下!
数据加载中...
 
   



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

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