概述
其实x进制转十进制的算法都差不多,不过如果是针对于字符形式,他们却有点不同.使用指针和数组的形式计算,又不同.这里演示将字符型的数组形式的八进制转成十进制:
1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 5 #define MAX 10 6 7 //初始化数组为八进制. 8 void 9 init(char *octal) { 10 gets(octal); 11 } 12 13 //将八进制转为十进制. 14 int 15 octalToDecimal(char *octal) { 16 int len = strlen(octal); //实际长度. 17 int sum = 0; //存储结果. 18 int r = 0; //指数. 19 for(int i = len - 1; i >= 0; i--) 20 sum += pow((float)8, r++) * (octal[i] - ‘0‘); 21 return sum; 22 } 23 24 /* 25 八进制转十进制. 26 */ 27 int 28 main(void) { 29 char octal[MAX]; 30 gets(octal); 31 printf("r=%d", octalToDecimal(octal)); 32 printf("\n"); 33 }
时间: 2024-10-13 00:34:51