用c++写一个将二进制数转换为十进制数,用c++实现
时间: 2024-05-04 15:18:48 浏览: 17
以下是将二进制数转换为十进制数的 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long long binaryNumber, decimalNumber = 0;
int i = 0, remainder;
cout << "Enter a binary number: ";
cin >> binaryNumber;
while (binaryNumber != 0) {
remainder = binaryNumber % 10;
binaryNumber /= 10;
decimalNumber += remainder * pow(2, i);
++i;
}
cout << "Decimal number is: " << decimalNumber;
return 0;
}
```
代码的基本思路是将输入的二进制数按照位数逐一转换为十进制数,最后将每一位上的数值相加即可得到最终的十进制数。
相关问题
写一个c++算法,将十进制数转换为5位二进制数
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[5] = {0}; // 初始化二进制数组
int i = 4;
while (decimal > 0 && i >= 0) { // 循环直到十进制数为0或者二进制数组已满
binary[i] = decimal % 2; // 取余数
decimal = decimal / 2; // 商作为下一轮的被除数
i--; // 二进制数组下标递减
}
for (i = 0; i < 5; i++) { // 输出二进制数组
printf("%d", binary[i]);
}
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("转换为5位二进制数为:");
decimalToBinary(decimal);
printf("\n");
return 0;
}
```
请你用c++演示用递归的方法将二进制数转换为十进制数
好的,以下是用递归的方法将二进制数转换为十进制数的C++代码:
```c++
#include <iostream>
using namespace std;
int binaryToDecimal(int binary, int index = 0) {
if (binary == 0) { // 基线条件
return 0;
} else {
int digit = binary % 10; // 取最低位数字
int decimal = digit * pow(2, index); // 计算该位的十进制值
return decimal + binaryToDecimal(binary / 10, index + 1); // 递归调用
}
}
int main() {
int binary;
cout << "请输入一个二进制数:";
cin >> binary;
cout << binary << "的十进制表示为:" << binaryToDecimal(binary) << endl;
return 0;
}
```
在上面的代码中,`binaryToDecimal` 函数使用了递归的方法将二进制数转换为十进制数。如果二进制数已经全部转换完成(即基线条件),则直接返回 0;否则取出最低位的数字,计算该位的十进制值,并递归调用 `binaryToDecimal` 函数来计算剩余位的十进制值,最后将所有位的十进制值相加即可得到最终的十进制数。
在 `main` 函数中,我们输入一个二进制数,并调用 `binaryToDecimal` 函数来将其转换为十进制数,并输出结果。