C 语言范例 - 八进制与十进制相互转换
八进制与十进制相互转换
十进制转换为八进制
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> #include <math.h> int dec2oct(int decimal); int main() { int decimal; printf("输入一个十进制数: "); scanf("%d", &decimal); printf("十进制数 %d 转换为八进制为 %d\n", decimal, dec2oct(decimal)); return 0; } int dec2oct(int decimal) { int octal = 0, i = 1; while (decimal != 0) { octal += (decimal % 8) * i; decimal /= 8; i *= 10; } return octal; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 输入一个十进制数: 66 十进制数 66 转换为八进制为 102
八进制转换为十进制
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> #include <math.h> long long oct2dec(int octal); int main() { int octal; printf("输入一个八进制数: "); scanf("%d", &octal); printf("八进制数 %d 转换为十进制为 %lld\n", octal, oct2dec(octal)); return 0; } long long oct2dec(int octal) { int decimal = 0, i = 0; while(octal != 0) { decimal += (octal%10) * pow(8,i); ++i; octal/=10; } i = 1; return decimal; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 输入一个八进制数: 103 八进制数 103 转换为十进制为 6