[请教]八进制转十进制算法问题
#include <stdio.h>main(){
char *p,s[6];
int n=0;
p=s;
printf("请输入待转换八进制数:\n");
gets(p);
while(*(p)!='\0'){
n=n*8+*p-'0';
p++;
}
printf("%d\n",n);
}
/*这是经典百例里的一个,请教下各位兄弟姐妹,n=n*8+*p-'0';句怎么实现转换的?
循环n*8计算权值,那*p-'0'是什么?
*/
因为你的八进制数是以字符串的形式输入的,而要把数字字符变成整型的话
就需要把*p-'0';
你可以想象一下如果输入十进制的字符串,然后要把它以整型输出的话
while(*(p)!='\0'){
n=n*10+*p-'0';
p++;
}
就应该会明白上面意思了
[此贴子已经被作者于2006-8-19 23:26:34编辑过]