我之前记的8转10进制方法是:从最低位开始,将每位上的数提出来,乘以8的(位次-1)次方,然后求和。但做作业的时候发现了参考答案的这种方法,没见过呀,这是什么思路的?想学习学习。
另外,这个代码不仅支持八转十,还支持二转十、十六转十等。
#include <stdio.h>
int fun(char *p)
{
int n = 0;
while(*(p) != '\0'){
n=n*8+*p-'0'; // 如果不是想八进制转十进制,则把8改为原进制就行,前提是输入的数无字母
p++;
}
return n;
}
int main( )
{
char *p,s[6];
p=s;
printf("请输入数字字符串:");
gets(p);
printf("转换成十进制的结果为:%d\n",fun(p));
return 0;
}