c++二进制数快速转十进制数
时间: 2023-08-09 15:04:17 浏览: 106
可以使用以下代码将二进制数转换为十进制数:
```c++
#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 n;
cout << "Enter a binary number: ";
cin >> n;
cout << n << " in binary = " << binaryToDecimal(n) << " in decimal";
return 0;
}
```
在上面的代码中,我们首先定义了一个函数`binaryToDecimal`来将二进制数转换为十进制数。该函数采用一个整数值作为二进制数,并使用while循环,每次从该数字的末尾获取一个数字。这个数字乘以2的i次方,其中i是它从右到左的位置。最后,我们将所有这些数字的和相加并返回它。
在主函数中,我们首先接收一个二进制数,然后调用`binaryToDecimal`函数将其转换为十进制数,并将结果打印出来。
相关问题
c++二进制转换为十进制数
在C++中,将二进制数转换为十进制数通常通过迭代和位运算来实现。一种常见的方法是使用`std::bitset`或手动遍历二进制字符串。这里有一个基本的手动实现示例:
```cpp
#include <iostream>
#include <string>
// 函数来将二进制字符串转换为十进制
int binaryToDecimal(const std::string &binary) {
int decimal = 0;
int base = 1;
for (int i = binary.length() - 1; i >= 0; --i) {
if (binary[i] == '1') {
decimal += base;
}
base *= 2;
}
return decimal;
}
int main() {
std::string binaryString = "1010";
int decimalNumber = binaryToDecimal(binaryString);
std::cout << "Binary " << binaryString << " is equivalent to decimal " << decimalNumber << "." << std::endl;
c++ 十进制数转二进制字符串
在 C++ 中,将十进制整数转换成二进制字符串通常可以使用内置函数 `bitset` 或者手动通过循环进行位操作。以下是两种常见方法:
1. 使用 `bitset` 和 `to_string` 函数:
```cpp
#include <bitset>
#include <string>
std::string decimalToBinary(int decimal) {
std::bitset<32> binary(decimal); // 32位足够表示32位整数,可根据需要调整位数
return binary.to_string();
}
```
在这个例子中,`decimalToBinary` 函数接受一个整数,将其转换为32位的二进制 bitset,然后使用 `to_string` 将 bitset 转换成字符串。
2. 手动进行位运算:
```cpp
#include <iostream>
#include <string>
std::string decimalToBinary(int decimal) {
std::string binary;
while (decimal > 0) {
binary = std::to_string(decimal % 2) + binary; // 余数加到前面
decimal /= 2;
}
if (binary.empty()) {
binary = "0"; // 如果输入是0,直接返回"0"
}
return binary;
}
```
这个版本通过不断取余数并左移除最低位二进制位,直到整数变成0,最后把得到的每一位连接起来形成二进制字符串。
阅读全文