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

在C++中将十进制数转换为二进制,有多种实现方式,包括手动算法和使用标准库。下面介绍几种常用且清晰的方法。
这是最基础的方法:不断将十进制数除以2,记录每次的余数,直到商为0。余数倒序排列即为对应的二进制数。
// 示例代码:#include <iostream>
#include <string>
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 << "二进制: " << decToBinary(num) << endl;
// 输出: 1010
return 0;
}
如果知道数值范围,可以使用 bitset 直接转换,适合固定位宽(如8、16、32位)。
// 示例代码:#include <iostream>
#include <bitset>
using namespace std;
int main() {
int num = 10;
bitset<8> binary(num); // 8位表示
cout << "二进制: " << binary << endl;
// 输出: 00001010
return 0;
}
可根据需要调整 bitset 的大小,如 bitset<16> 或 bitset<32>。
立即学习“C++免费学习笔记(深入)”;
递归方式更贴近“先处理深层余数”的逻辑。
void decToBinaryRecursive(int n) {
if (n > 1)
decToBinaryRecursive(n / 2);
cout << n % 2;
}
int main() {
int num = 10;
decToBinaryRecursive(num);
cout << endl;
// 输出: 1010
return 0;
}
对于负数,计算机以补码存储。若想输出其内存中的二进制表示,可使用 unsigned 类型或 bitset。
int num = -10;
bitset<8> binary(static_cast<unsigned int>(num));
cout << "负数补码: " << binary << endl;
这会输出 -10 在8位下的补码形式:11110110。
基本上就这些。根据需求选择合适方法:学习原理用循环或递归,实际开发推荐 bitset。简单又不容易出错。
以上就是c++++中如何将十进制转为二进制_c++十进制转二进制方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号