C语言经典例82-八进制转换为十进制

1 题目

八进制转换为十进制

2 分析

将一个八进制数,逐一分解出对应的权值,再乘以权重,累加起来就可以转换为十进制了,采用具体的方法就是除余法,例如八进制数12,取余分解出最低位2,再乘以相应的权重,由于是最低位,所以权重为 8 0 = 1 8^0 = 1 ,再用12/10,进行下一轮循环,取余分解出最低位1,再乘以相应的权重,权重为 8 1 = 8 8^1 = 8 ,累加起来为 2 + 8 = 10 2+8=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
发布了125 篇原创文章 · 获赞 199 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/syzdev/article/details/104408919