1 题目
八进制转换为十进制
2 分析
将一个八进制数,逐一分解出对应的权值,再乘以权重,累加起来就可以转换为十进制了,采用具体的方法就是除余法,例如八进制数12,取余分解出最低位2,再乘以相应的权重,由于是最低位,所以权重为
8
0
=
1
8^0 = 1
80=1 ,再用12/10,进行下一轮循环,取余分解出最低位1,再乘以相应的权重,权重为
8
1
=
8
8^1 = 8
81=8,累加起来为
2
+
8
=
10
2+8=10
2+8=10,所以相应的十进制数为
10
10
10
3 实现
#include <stdio.h>
#include <math.h>
int Trans(int n)
{
int sum = 0;
int i = 0;
while (n) {
sum += (n%10)*pow(8, i++);
n /= 10;
}
return sum;
}
int main(void)
{
int n;
printf("请输入一个八进制数:");
scanf("%d", &n);
printf("转化为十进制为:");
printf("%d", Trans(n));
}
4 运行结果
请输入一个八进制数:12
转化为十进制为:10
本文详细解析了如何使用除余法将八进制数转换为十进制数,通过具体实例展示了算法的实现过程,并提供了C语言代码实现及运行结果。
4075





