天天看点

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

继续阅读