帮我写2进制字符串转10进制c++c++代码
时间: 2023-08-10 20:29:07 浏览: 133
下面是C++代码示例:
```c++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
string binaryString;
cout << "请输入一个2进制字符串:";
cin >> binaryString;
int decimalNumber = 0;
int length = binaryString.length();
for (int i = 0; i < length; i++)
{
if (binaryString[i] == '1')
{
decimalNumber += pow(2, length - 1 - i);
}
}
cout << "转换后的10进制数为:" << decimalNumber << endl;
return 0;
}
```
这个代码会提示用户输入一个2进制字符串,然后将其转换为10进制数并输出。算法是从左到右遍历字符串,如果当前位是1,则将2的当前位次幂加到结果中。
相关问题
string16进制字符串转10进制 C++
可以使用 `std::stoi` 函数来实现16进制字符串转10进制数字的功能。例如,下面的代码将一个16进制字符串转换为10进制整数:
```cpp
#include <iostream>
#include <string>
int main() {
std::string hex_str = "1A";
int dec_num = std::stoi(hex_str, nullptr, 16);
std::cout << dec_num << std::endl;
return 0;
}
```
输出结果为:
```
26
```
其中,`std::stoi` 函数的第二个参数是用于指定一个指针,用于在函数中返回第一个未转换的字符的位置。如果不需要这个参数,可以将其设置为 `nullptr`。第三个参数是用于指定输入字符串的进制,对于16进制字符串,应该将其设置为16。
C++ 二进制字符串转十六进制字符串
可以使用以下方法将C++中的二进制字符串转换为十六进制字符串:
1. 将二进制字符串转换为整数类型。
2. 使用十六进制输出格式将整数转换为十六进制字符串。
下面是一个示例代码:
```cpp
#include <iostream>
#include <bitset>
#include <sstream>
std::string binaryToHex(const std::string& binaryString) {
std::bitset<32> bits(std::string(binaryString));
std::stringstream hexStream;
hexStream << std::hex << bits.to_ulong();
return hexStream.str();
}
int main() {
std::string binaryString = "1101010101110010101";
std::string hexString = binaryToHex(binaryString);
std::cout << "Binary: " << binaryString << std::endl;
std::cout << "Hex: " << hexString << std::endl;
return 0;
}
```
以上代码将打印出以下结果:
```
Binary: 1101010101110010101
Hex: d5575
```
这是将二进制字符串 "1101010101110010101" 转换为十六进制字符串的示例。你可以根据需要修改输入的二进制字符串。
阅读全文