C++中十进制转二进制有四种常用方法:1. 循环取余法,通过不断除以2记录余数并逆序拼接;2. 使用bitset,简洁高效,适合固定位宽转换;3. 递归实现,先递归处理商再输出余数;4. 处理负数时可结合unsigned类型与bitset输出补码形式。推荐学习用循环或递归,实际开发用bitset。

在C++中将十进制数转换为二进制,有多种实现方式,包括手动算法和使用标准库。下面介绍几种常用且清晰的方法。
1. 使用循环和取余法(手动转换)
这是最基础的方法:不断将十进制数除以2,记录每次的余数,直到商为0。余数倒序排列即为对应的二进制数。
// 示例代码:#include iostream>
#include
using namespace std;
string decToBinary(int n) {
if (n == 0) return "0";
string binary = "";
while (n > 0) {
binary = char('0' + n % 2) + binary;
n /= 2;
}
return binary;
}
int main() {
int num = 10;
cout
// 输出: 1010
return 0;
}
2. 使用 bitset(推荐,简洁高效)
如果知道数值范围,可以使用 bitset 直接转换,适合固定位宽(如8、16、32位)。
// 示例代码:#include
#include
using namespace std;
int main() {
int num = 10;
bitset binary(num); // 8位表示
cout
// 输出: 00001010
return 0;
}
可根据需要调整 bitset 的大小,如 bitset 或 bitset。
立即学习“C++免费学习笔记(深入)”;
3. 使用递归实现
递归方式更贴近“先处理深层余数”的逻辑。
void decToBinaryRecursive(int n) {
if (n > 1)
decToBinaryRecursive(n / 2);
cout
}
int main() {
int num = 10;
decToBinaryRecursive(num);
cout
// 输出: 1010
return 0;
}
4. 处理负数(补码形式)
对于负数,计算机以补码存储。若想输出其内存中的二进制表示,可使用 unsigned 类型或 bitset。
int num = -10; 这会输出 -10 在8位下的补码形式:11110110。 基本上就这些。根据需求选择合适方法:学习原理用循环或递归,实际开发推荐 bitset。简单又不容易出错。
bitset binary(static_cast
cout










