二进制数(北邮复试上机)

前言:

21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。

题目描述:

大家都知道,数据在计算机里中存储是以二进制的形式存储的。 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。

输入描述

多行,每一行表示要求的数字

输出描述:

输出共T行。每行输出求得的二进制串。

解答

#include<iostream>
#include<string>
using namespace std;

int main() {
    
    
	int num;
	while (cin >> num) {
    
    
		string Bnum="";
		int temp;
		while (num != 0) {
    
    
			temp = num % 2;
			num /= 2;
			Bnum += temp+'0';
		}
		for (int i = Bnum.length()-1; i >= 0; i--)
			if (i != 0)
				cout << Bnum[i];
			else
				cout << Bnum[i] << endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44897291/article/details/113108694