學會了一個很強的操作,自己手動将十進制數字轉換成為二進制
#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