学会了一个很强的操作,自己手动将十进制数字转换成为二进制
#include <bits/stdc++.h>
using namespace std;
vector<int>pow2={1,2,4,8,16,32,64,128};
int main(int argc, char** argv) {
int a = 17;
string s;
for(int i =7;i>=0;--i){
if(a >= pow2[i]){
s += "1";
a -= pow2[i];
}
else{
s += "0";
}
}
//把前面多余的0去掉
s = s.substr(s.find('1'),s.length());
cout << s;
}
基本思路就是先初始化一个2以自然数为幂的数组(具体多大按照题目要求来)
然后从小到大逐个比较十进制数字和数组中数字之间的大小关系,如果大于等于数组中的数字,则该位为1,否则该位为0