在C++中,将十进制数转换为二进制数可以通过以下两种常用方法实现:
一、除2取余法(迭代法)
基本思路 通过不断将十进制数除以2,记录每次的余数,直到商为0。余数序列从下到上排列即为二进制表示。
实现代码
```cpp
include include include void decimalToBinaryIterative(int n) { if (n == 0) { std::cout << "0"; return; } std::string binary = ""; while (n > 0) { int remainder = n % 2; binary = (remainder == 1 ? "1" : "0") + binary; n /= 2; } std::cout << binary << std::endl; } int main() { int num; std::cout << "请输入一个十进制数: "; std::cin >> num; decimalToBinaryIterative(num); return 0; } ``` 二、位运算(内置函数) C++提供了内置函数`std::bitset`和`std::hex`等工具,可简化转换过程。 使用`std::bitset` `std::bitset`可固定大小地存储二进制数据,适合转换固定范围的整数。 ```cpp include include void decimalToBinaryBitset(int n) { std::bitset<32> binary(n); std::cout << binary << std::endl; } int main() { int num; std::cout << "请输入一个十进制数: "; std::cin >> num; decimalToBinaryBitset(num); return 0; } ``` 使用`std::hex`进行格式化输出 通过`std::hex`将整数以十六进制输出,再手动转换为二进制显示。 ```cpp include include void decimalToBinaryFormatted(int n) { std::cout << "二进制: " << std::hex<< n << std::endl; } int main() { int num; std::cout << "请输入一个十进制数: "; std::cin >> num; decimalToBinaryFormatted(num); return 0; } ``` 三、其他方法 递归法: 通过递归调用实现转换,适合教学和理解递归思想。 负数处理 总结 迭代法通用性强,适合任意整数转换; 位运算简洁高效,但需注意数据类型范围; 内置函数最便捷,但灵活性较低。 根据需求选择合适的方法即可。