二进制转换为十进制c++
时间: 2024-08-14 16:07:24 浏览: 97
在C++中,将二进制数转换成十进制数通常通过迭代和位运算来实现。这里是一个简单的函数示例,它接受一个字符串形式的二进制数字,并返回其对应的十进制值:
```cpp
#include <string>
#include <bitset>
int binaryToDecimal(std::string binary) {
int decimal = 0;
for (size_t i = 0; i < binary.length(); ++i) {
if (binary[i] == '1') {
decimal += pow(2, binary.length() - 1 - i);
}
}
return decimal;
}
```
这个函数的工作原理是从右到左遍历二进制字符串,对于每一位,如果它是'1',就将其对应于2的相应幂加到结果上,幂的大小是当前位的位置减一(因为从0开始计数)。例如,二进制数1010对应的十进制是2^3 + 2^1。
相关问题
二进制转换为十进制 c++
二进制转换为十进制是计算机科学中常见的转换操作。在C++中,可以通过位运算和数学方法将二进制字符串转换为对应的十进制数。下面是一个简单的例子,展示如何将二进制字符串转换为十进制:
```cpp
#include <iostream>
#include <string>
#include <cmath>
int binaryToDecimal(const std::string &binary) {
int decimal = 0;
int base = 1; // 2的0次方
// 从字符串的最后一个字符开始向前遍历
for (int i = binary.length() - 1; i >= 0; --i) {
// 当前位是1,则加上当前的权值
if (binary[i] == '1') {
decimal += base;
}
// 权值翻倍,因为是二进制
base *= 2;
}
return decimal;
}
int main() {
std::string binary;
std::cout << "请输入一个二进制数: ";
std::cin >> binary;
int decimal = binaryToDecimal(binary);
std::cout << "二进制数 " << binary << " 对应的十进制数是 " << decimal << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个`binaryToDecimal`函数,它接受一个二进制字符串作为参数,并返回对应的十进制数。在`main`函数中,我们从用户那里获取二进制字符串,然后调用`binaryToDecimal`函数,并输出结果。
这段代码的核心思想是遍历二进制字符串中的每一个字符,检查它是否是'1',如果是,则将当前位置的二进制权值加到十进制结果中。权值是以2的幂为基础,从字符串的最后一个字符(即最低位)开始,向左每移动一位,权值翻倍。
二进制转换为十进制c++代码
以下是将二进制数转换为十进制数的 C++ 代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int binaryToDecimal(int n) {
int decimalNumber = 0, i = 0, remainder;
while (n != 0) {
remainder = n % 10;
n /= 10;
decimalNumber += remainder * pow(2, i);
++i;
}
return decimalNumber;
}
int main() {
int binaryNumber;
cout << "Enter a binary number: ";
cin >> binaryNumber;
cout << binaryNumber << " in binary = " << binaryToDecimal(binaryNumber) << " in decimal";
return 0;
}
```
该代码首先定义了一个名为 `binaryToDecimal` 的函数,该函数接受一个二进制数作为参数,并将其转换为十进制数。然后,`main` 函数通过用户输入接收一个二进制数,并将其传递给 `binaryToDecimal` 函数进行转换。最后,程序输出二进制数和相应的十进制数。
阅读全文