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

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

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

二进制和十进制都是常用的数据表示方式,常常在计算机科学、电子工程、数学等领域中使用。本文介绍如何在C++中编写程序将二进制数转换为十进制,反之亦然。

二进制转十进制

二进制数是由0和1组成的数,而十进制数是由0到9组成的数。将二进制数转换为十进制数的常用方法是将二进制数按权相加。例如,二进制数10101110转换为十进制数的计算方法如下:

    1*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0
=   1*128 + 0*64 + 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 0*1
=   174

下面是实现二进制数转换为十进制数的示例代码:

#include <iostream>
#include <cmath>

using namespace std;

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;
    
    cout << "Enter a binary number: ";
    cin >> binaryNumber;
    
    cout << binaryNumber << " in binary = " << binaryToDecimal(binaryNumber) << " in decimal" << endl;
    
    return 0;
}

代码中定义了一个binaryToDecimal函数,该函数的参数为一个long long类型的二进制数,返回一个int类型的十进制数。

十进制转二进制

将十进制数转换为二进制数的常用方法是采用短除法。将一个十进制数不断除以2,直到商为0为止,每次取得的余数就是二进制数的对应位。例如,十进制数174转换为二进制数的计算方法如下:

    174 / 2 = 87 ... 0
    87 / 2 = 43 ... 1
    43 / 2 = 21 ... 1
    21 / 2 = 10 ... 1
    10 / 2 = 5 ... 0
    5 / 2 = 2 ... 1
    2 / 2 = 1 ... 0
    1 / 2 = 0 ... 1

将每次获得的余数倒置即可得到二进制数10101110。

下面是实现十进制数转换为二进制数的示例代码:

#include <iostream>

using namespace std;

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

int main() {
    int decimalNumber;
    
    cout << "Enter a decimal number: ";
    cin >> decimalNumber;
    
    cout << decimalNumber << " in decimal = " << decimalToBinary(decimalNumber) << " in binary" << endl;
    
    return 0;
}

代码中定义了一个decimalToBinary函数,该函数的参数为一个int类型的十进制数,返回一个int类型的二进制数。

结论

在本文中,我们介绍了如何在C++中实现二进制数转换为十进制数和十进制数转换为二进制数。这两种转换方法是计算机科学中常用的运算,在实际编程中也是非常有用的。