概述
其实x进制转十进制的算法都差不多,不过如果是针对于字符形式,他们却有点不同.使用指针和数组的形式计算,又不同.这里演示将字符型的数组形式的八进制转成十进制:
#include <stdio.h>
#include <string.h>
#include <math.h> #define MAX 10 //初始化数组为八进制.
void
init(char *octal) {
gets(octal);
} //将八进制转为十进制.
int
octalToDecimal(char *octal) {
int len = strlen(octal); //实际长度.
int sum = 0; //存储结果.
int r = 0; //指数.
for(int i = len - 1; i >= 0; i--)
sum += pow((float)8, r++) * (octal[i] - '0');
return sum;
} /*
八进制转十进制.
*/
int
main(void) {
char octal[MAX];
gets(octal);
printf("r=%d", octalToDecimal(octal));
printf("\n");
}