首页 > 代码库 > c-八进制 转 十进制

c-八进制 转 十进制

概述

  其实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 int15 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 int28 main(void) {29     char octal[MAX];30     gets(octal);31     printf("r=%d", octalToDecimal(octal));32     printf("\n");33 }

 

c-八进制 转 十进制