十进制转换二进制 C++
时间: 2025-01-31 07:44:20 浏览: 59
C++ 实现十进制到二进制的转换
在C++中,可以通过多种方式实现十进制整数到二进制字符串的转换。一种常见的方式是通过不断对给定的十进制数值执行除2取余操作来构建对应的二进制表示形式。
下面展示了一种基于此逻辑的方法:
#include <iostream>
#include <algorithm> // 为了使用reverse函数
using namespace std;
int main() {
int a;
cin >> a;
string s1;
while (a) {
s1 += '0' + a % 2; // 计算当前位并将其作为字符添加至s1串尾部
a /= 2; // 更新被除数为商以便继续处理下一位
}
if (s1.empty()) { // 特殊情况:输入为0时直接输出"0"
cout << "0";
} else {
reverse(s1.begin(), s1.end()); // 反转字符串得到正确的顺序
cout << s1;
}
return 0;
}
上述程序首先读入一个整数a
,接着在一个循环体内重复计算该整数模2的结果(即求得最低有效位),并将这些结果依次追加到字符串s1
后面形成初步的二进制序列[^1]。由于每次获取的新位实际上是原数最右边的一位,在整个过程中会逐渐累积成反向排列的形式;因此最后一步需要调用标准库中的reverse()
函数来颠倒这个临时构造出来的字符串,从而获得最终正确方向上的二进制表达式。
对于特殊情况下的零值输入,则需单独考虑,因为正常流程不会进入while循环体内部,所以当检测到这种情况发生时应立即打印出单个‘0’字符结束程序运行。
相关推荐












