C++用while语句将二进制数转换为十进制数
时间: 2024-11-06 19:22:13 浏览: 18
在C++中,你可以使用while循环结合位运算将二进制数逐位转换成十进制数。这里是一个简单的示例:
```cpp
#include <iostream>
#include <bitset>
int binaryToDecimal(std::string binary) {
int decimal = 0;
int base = 1; // 二进制每位对应的权值
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary[i] == '1') { // 如果当前位是1
decimal += base;
}
base <<= 1; // 移位操作,权值左移一位
}
return decimal;
}
int main() {
std::string binaryInput = "101010"; // 输入的二进制数
int decimalOutput = binaryToDecimal(binaryInput);
std::cout << "二进制数 " << binaryInput << " 转换为十进制是 " << decimalOutput << std::endl;
return 0;
}
```
在这个程序中,`while`循环不是必需的,因为我们已经知道二进制字符串的长度。不过如果输入的是用户从键盘读取的动态二进制串,那么可以考虑使用`while`遍历直到遇到字符串结束。
阅读全文