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

C 语言范例

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.