天天看點

c++十進制轉換二進制

學會了一個很強的操作,自己手動将十進制數字轉換成為二進制

#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

繼續閱讀