1 题目
八进制转换为十进制
2 分析
将一个八进制数,逐一分解出对应的权值,再乘以权重,累加起来就可以转换为十进制了,采用具体的方法就是除余法,例如八进制数12
,取余分解出最低位2
,再乘以相应的权重,由于是最低位,所以权重为
,再用12/10
,进行下一轮循环,取余分解出最低位1
,再乘以相应的权重,权重为
,累加起来为
,所以相应的十进制数为
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