不使用bitset库
时间: 2024-11-24 22:16:54 浏览: 18
如果你不想使用`bitset`库,可以手动编写循环来实现十进制到二进制的转换。这是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
std::string decimalToBinary(int decimalNum) {
std::vector<char> binaryDigits(16, '0'); // 初始化一个包含16个字符的向量,假设最大32位整数
for (int i = 31; i >= 0; i--) { // 从最高位开始处理
binaryDigits[i] = decimalNum % 2 + '0'; // 取余并转化为字符
decimalNum /= 2; // 向左移除一位
}
std::reverse(binaryDigits.begin(), binaryDigits.end()); // 将结果反转,因为低位在前
return std::string(binaryDigits.begin(), binaryDigits.end());
}
int main() {
int decimalInput;
std::cout << "Enter a decimal number: ";
std::cin >> decimalInput;
if (decimalInput >= 0 && decimalInput <= INT_MAX)
std::cout << "Its binary representation is: " << decimalToBinary(decimalInput);
else
std::cout << "Invalid input! Please enter an integer within the range of " << INT_MIN << " to " << INT_MAX;
return 0;
}
```
这个版本的代码首先创建一个足够大的数组存储二进制位,然后逐位计算每一位的值,并将它们添加到数组的开头。注意,这种方法同样只能处理32位整数。
阅读全文