进制转化方法
下面例子是八进制转化成十进制
#include <stdio.h> int main(){
char *p,s[6];
int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0'){
n=n*8+*p-'0';
p++;
}
printf("%d",n);
return 0;
}
∗ \ast ∗p-'0’就是将字符变成数字,例如字符串为"123" ,当 p指向1的时候, ∗ \ast ∗p = ‘1’ ,而‘1’-‘0’就是两者之间的ASCII码进行相减,结果就是1了。
所以,
n = 0
×
\times
× 8 +1 = 1
n=1
×
\times
× 8 + 2 = 10
n=10
×
\times
× 8 + 3 = 83
比如想把2进制转化成十进制 就把while循环里的8改为2即可