📜  C程序将二进制数转换为十进制,反之亦然(1)

📅  最后修改于: 2023-12-03 15:14:26.217000             🧑  作者: Mango

C程序将二进制数转换为十进制,反之亦然

本文介绍了如何使用C编程语言将二进制数转换为十进制数,以及如何将十进制数转换为二进制数。我们将使用C语言来实现这两种转换算法。

二进制数转换为十进制数

首先,我们需要什么是二进制数和十进制数。二进制数是由0和1组成的数字系统,而十进制数是由0到9组成的数字系统。将二进制数转换为十进制数的基本原理是将每个二进制位乘以2的幂,并将结果相加。

下面是一个将二进制数转换为十进制数的C程序示例:

#include <stdio.h>
#include <math.h>

int binaryToDecimal(long long binaryNumber) {
    int decimalNumber = 0, i = 0, remainder;
    
    while (binaryNumber != 0) {
        remainder = binaryNumber % 10;
        binaryNumber /= 10;
        decimalNumber += remainder * pow(2, i);
        ++i;
    }
    
    return decimalNumber;
}

int main() {
    long long binaryNumber;
    
    printf("请输入一个二进制数: ");
    scanf("%lld", &binaryNumber);
    
    printf("转换为十进制数为: %d\n", binaryToDecimal(binaryNumber));
    
    return 0;
}

上述程序中,我们定义了一个函数 binaryToDecimal,它接受一个长整型二进制数作为参数,并返回对应的十进制数。在 main 函数中,我们首先接收用户输入的二进制数,然后调用 binaryToDecimal 函数并打印结果。

十进制数转换为二进制数

现在,让我们来看看如何将十进制数转换为二进制数。要将十进制数转换为二进制数,我们需要将十进制数除以2,直到商为0为止,并将每个余数连接起来,最后将结果反转。

下面是一个将十进制数转换为二进制数的C程序示例:

#include <stdio.h>

long long decimalToBinary(int decimalNumber) {
    long long binaryNumber = 0;
    int remainder, i = 1;
    
    while (decimalNumber != 0) {
        remainder = decimalNumber % 2;
        decimalNumber /= 2;
        binaryNumber += remainder * i;
        i *= 10;
    }
    
    return binaryNumber;
}

int main() {
    int decimalNumber;
    
    printf("请输入一个十进制数: ");
    scanf("%d", &decimalNumber);
    
    printf("转换为二进制数为: %lld\n", decimalToBinary(decimalNumber));
    
    return 0;
}

上述程序中,我们定义了一个函数 decimalToBinary,它接受一个整型十进制数作为参数,并返回对应的二进制数。在 main 函数中,我们首先接收用户输入的十进制数,然后调用 decimalToBinary 函数并打印结果。

以上就是使用C程序将二进制数转换为十进制数,以及将十进制数转换为二进制数的方法和示例。你可以根据自己的需求进行扩展和修改这些代码。希望对你有所帮助!