输入一个十进制整数,输出他的二进制表示c++
时间: 2024-10-18 21:07:44 浏览: 45
在C++中,你可以使用内置的`bitset`库或者手动编写循环来将十进制整数转换为二进制字符串。以下是两种方法:
**方法一:使用`bitset`库**
```cpp
#include <bitset>
#include <string>
std::string decimalToBinary(int decimal) {
std::bitset<32> binary(decimal); // 32位足够处理32位整数,根据实际需要调整
return binary.to_string();
}
```
**方法二:手动循环除2取余**
```cpp
#include <iostream>
#include <vector>
#include <sstream>
std::string decimalToBinary(int decimal) {
std::vector<char> binary(10, '0'); // 初始化一个字符数组存储二进制位
while (decimal > 0) {
binary[0] = decimal % 2 + '0'; // 取余并转换为字符('0'或'1')
decimal /= 2; // 整除
binary.pop_back(); // 移除最低位
}
std::reverse(binary.begin(), binary.end()); // 逆序以便得到正确的顺序
return std::string(binary.begin(), binary.end());
}
```
**相关问题--:**
1. 这两种方法哪一种效率更高?
2. `bitset`库是如何工作的?
3. 如果输入的数字过大导致溢出怎么办?
阅读全文