编辑这个页面须要登录或更高权限!

C程序将二进制数与十进制相互转换

C 语言编程实例大全

在此示例中,您将学习通过创建用户定义的函数将二进制数与十进制相互转换。

要理解此示例,您应该了解以下C语言编程主题:

将二进制转换为十进制的程序

#include <math.h>
#include <stdio.h>
int convert(long long n);
int main() {
    long long n;
    printf("输入二进制数: ");
    scanf("%lld", &n);
    printf("%lld(二进制)= %d(十进制)", n, convert(n));
    return 0;
}

int convert(long long n) {
    int dec = 0, i = 0, rem;
    while (n != 0) {
        rem = n % 10;
        n /= 10;
        dec += rem * pow(2, i);
        ++i;
    }
    return dec;
}

输出结果

输入二进制数: 110110111
110110111(二进制)= 439(十进制)

将十进制转换为二进制的程序

#include <math.h>
#include <stdio.h>
long long convert(int n);
int main() {
    int n;
    printf("输入十进制数字: ");
    scanf("%d", &n);
    printf("%d(十进制)= %lld(二进制)", n, convert(n));
    return 0;
}

long long convert(int n) {
    long long bin = 0;
    int rem, i = 1, step = 1;
    while (n != 0) {
        rem = n % 2;
        printf("步骤 %d: %d/2, 余 = %d, 商 = %d\n", step++, n, rem, n / 2);
        n /= 2;
        bin += rem * i;
        i *= 10;
    }
    return bin;
}

输出结果

输入十进制数字: 29
步骤 1: 29/2, 余 = 1, 商 = 14
步骤 2: 14/2, 余 = 0, 商 = 7
步骤 3: 7/2, 余 = 1, 商 = 3
步骤 4: 3/2, 余 = 1, 商 = 1
步骤 5: 1/2, 余 = 1, 商 = 0
29(十进制)= 11101(二进制)

C 语言编程实例大全