C++用指针处理字符串实现二进制转十进制
时间: 2023-07-18 22:10:20 浏览: 136
可以用以下代码实现:
```c++
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int binaryToDecimal(char *binary) {
int len = strlen(binary);
int decimal = 0;
for (int i = 0; i < len; i++) {
decimal += (binary[i] - '0') * pow(2, len - i - 1);
}
return decimal;
}
int main() {
char binary[100];
cout << "请输入一个二进制数:";
cin >> binary;
int decimal = binaryToDecimal(binary);
cout << "转换后的十进制数为:" << decimal << endl;
return 0;
}
```
在这个程序中,我们首先使用 `strlen` 函数获取二进制数的长度,并定义一个变量 `decimal` 来存储转换后的十进制数。
然后使用循环遍历二进制数的每一位,将其转换为对应的十进制数,并加入到 `decimal` 变量中。
最后输出转换后的十进制数即可。
相关问题
C++用指针输入字符串的方式输入二进制数,转换为无符号整型的十进制数
可以通过以下代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char* binary = new char[32]; // 二进制字符串最大长度为32位
cin >> binary; // 输入二进制字符串
int len = strlen(binary);
unsigned int decimal = 0;
for(int i = 0; i < len; i++) {
decimal = decimal * 2 + binary[i] - '0'; // 将每一位二进制数转换为十进制数
}
cout << decimal << endl; // 输出转换后的十进制数
delete[] binary; // 释放内存
return 0;
}
```
首先创建一个长度为32的字符数组来存储输入的二进制字符串,然后使用`cin`输入该字符串。接着,通过`strlen`函数获取二进制字符串的长度,并使用一个循环将每一位二进制数转换为十进制数,最后输出转换后的十进制数。需要注意的是,这里使用无符号整型来存储转换后的十进制数,因为二进制数不包含符号位。最后,别忘了释放内存。
c++二进制转十进制
C++ 中可以使用 `stoi` 函数将二进制字符串转换为十进制整数。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string binary = "1010101"; // 二进制字符串
int decimal = stoi(binary, nullptr, 2); // 将二进制字符串转换为十进制整数
cout << decimal << endl; // 输出结果:85
return 0;
}
```
其中,`stoi` 函数有三个参数:
- 第一个参数是要转换的字符串;
- 第二个参数是一个指针,用于返回转换失败的字符的位置,如果转换成功,则返回 `nullptr`;
- 第三个参数是基数,即要转换的字符串的数值进制。在本例中,传入的是 `2`,表示要将二进制字符串转换为十进制整数。
阅读全文