二进制转十进制:C++ 实现详解

将二进制数转换为十进制数是一个常见的编程任务。本文将介绍如何进行转换,并提供两种 C++ 代码实现。

转换原理

二进制数的每一位都代表一个 2 的幂,从右往左依次是 2^0, 2^1, 2^2, 2^3, ...。例如,二进制数 '10101' 可以展开为:

1    0    1    0    1
2^4  2^3  2^2  2^1  2^0

然后将每一位的结果相加,即可得到十进制数:

1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 16 + 0 + 4 + 0 + 1 = 21

因此,二进制数 '10101' 转换为十进制数为 21。

C++ 代码实现

使用 pow 函数

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int binary; // 声明一个变量存储二进制数
    cout << "请输入一个二进制数:";
    cin >> binary; // 输入二进制数
    int decimal = 0; // 声明一个变量存储十进制数
    int power = 0; // 声明一个变量存储 2 的次幂
    while (binary != 0) {
        int digit = binary % 10; // 取出二进制数的最后一位
        decimal += digit * pow(2, power); // 计算对应的十进制数并累加到 decimal 中
        binary /= 10; // 将二进制数的最后一位去掉
        power++; // 2 的次幂加 1
    }
    cout << "转换后的十进制数为:" << decimal << endl; // 输出十进制数
    return 0;
}

不使用 pow 函数

#include <iostream>
using namespace std;

int main() {
    int binary; // 声明一个变量存储二进制数
    cout << "请输入一个二进制数:";
    cin >> binary; // 输入二进制数
    int decimal = 0; // 声明一个变量存储十进制数
    int power = 1; // 声明一个变量存储 2 的次幂
    while (binary != 0) {
        int digit = binary % 10; // 取出二进制数的最后一位
        decimal += digit * power; // 计算对应的十进制数并累加到 decimal 中
        binary /= 10; // 将二进制数的最后一位去掉
        power *= 2; // 2 的次幂乘 2
    }
    cout << "转换后的十进制数为:" << decimal << endl; // 输出十进制数
    return 0;
}

代码解析

  1. 输入二进制数: 使用 cin >> binary; 从用户输入中获取二进制数,并存储在变量 binary 中。

  2. 初始化变量: 初始化变量 decimal 为 0,用于存储转换后的十进制数。初始化变量 power 为 0 或 1,用于存储 2 的次幂。

  3. 循环遍历二进制数: 使用 while 循环遍历二进制数的每一位。

  4. 获取最后一位: 使用 binary % 10; 获取二进制数的最后一位,并存储在变量 digit 中。

  5. 计算对应的十进制数: 使用 pow(2, power);power *= 2; 计算 2 的次幂,并将结果乘以 digit,然后累加到 decimal 中。

  6. 删除最后一位: 使用 binary /= 10; 将二进制数的最后一位去掉。

  7. 更新 2 的次幂:power 加 1 或乘以 2,以计算下一位的 2 的次幂。

  8. 输出十进制数: 循环结束后,decimal 中存储的就是转换后的十进制数,使用 cout << decimal; 将其输出。

总结

本文详细讲解了二进制转十进制的原理,并提供了两种 C++ 代码实现。希望本文能帮助您更好地理解二进制数和十进制数的转换。

二进制转十进制:C++ 实现详解

原文地址: https://www.cveoy.top/t/topic/jA8O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录