c++输入一串二进制将其转十进制用指针
时间: 2023-08-07 08:03:57 浏览: 145
可以使用指针来实现将二进制转换为十进制。具体实现如下:
```cpp
#include <iostream>
using namespace std;
int main() {
char binary[32]; // 二进制数最长为32位
cout << "请输入一个二进制数:";
cin >> binary;
int i = 0; // 用于遍历二进制数的指针
int decimal = 0; // 十进制数
while (binary[i] != '\0') {
decimal = decimal * 2 + *(binary + i) - '0';
i++;
}
cout << "转换为十进制数为:" << decimal << endl;
return 0;
}
```
在上述代码中,我们定义了一个 char 类型的数组来存储输入的二进制数,定义了一个指针 i 来遍历该数组。在循环中,我们通过指针指向数组中的元素来计算十进制数,最终得到了该二进制数的十进制表示。
相关问题
c++二进制转十进制用指针
下面是一个使用指针将二进制转换为十进制的 C++ 代码示例:
```c++
#include <iostream>
using namespace std;
int binary_to_decimal(int *arr, int size) {
int result = 0;
for (int i = size - 1; i >= 0; i--) {
result += *(arr + i) * (1 << (size - i - 1));
}
return result;
}
int main() {
int binary[] = {1, 0, 1, 0, 1}; // 二进制数 10101
int size = sizeof(binary) / sizeof(binary[0]);
int decimal = binary_to_decimal(binary, size);
cout << "Decimal equivalent of binary " << binary << " is: " << decimal << endl;
return 0;
}
```
在上面的代码中,`binary_to_decimal` 函数使用指针来访问二进制数组中的每个元素,并将其转换为十进制。该函数首先将 `result` 变量初始化为 0。然后从数组的最后一个元素开始循环,每次将当前元素乘以 2 的幂次方(根据它在数组中的位置确定幂次方),并将结果加到 `result` 变量中。最后,函数返回转换后的十进制值。
在 `main` 函数中,我们定义了一个包含二进制数的整数数组,计算出数组的大小,然后调用 `binary_to_decimal` 函数来将其转换为十进制。最后,我们打印出转换后的十进制值。
C++用指针处理字符串实现二进制转十进制
可以用以下代码实现:
```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` 变量中。
最后输出转换后的十进制数即可。
阅读全文