二进制转十进制:C++ 实现详解
二进制转十进制: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;
}
代码解析
-
输入二进制数: 使用
cin >> binary;从用户输入中获取二进制数,并存储在变量binary中。 -
初始化变量: 初始化变量
decimal为 0,用于存储转换后的十进制数。初始化变量power为 0 或 1,用于存储 2 的次幂。 -
循环遍历二进制数: 使用
while循环遍历二进制数的每一位。 -
获取最后一位: 使用
binary % 10;获取二进制数的最后一位,并存储在变量digit中。 -
计算对应的十进制数: 使用
pow(2, power);或power *= 2;计算 2 的次幂,并将结果乘以digit,然后累加到decimal中。 -
删除最后一位: 使用
binary /= 10;将二进制数的最后一位去掉。 -
更新 2 的次幂: 将
power加 1 或乘以 2,以计算下一位的 2 的次幂。 -
输出十进制数: 循环结束后,
decimal中存储的就是转换后的十进制数,使用cout << decimal;将其输出。
总结
本文详细讲解了二进制转十进制的原理,并提供了两种 C++ 代码实现。希望本文能帮助您更好地理解二进制数和十进制数的转换。
原文地址: https://www.cveoy.top/t/topic/jA8O 著作权归作者所有。请勿转载和采集!