欢迎访问==> 【考研OR保研】机试题
题目描述
大家都知道,数据在计算机里中存储是以二进制的形式存储的。
有一天,小明学了 $C$ 语言之后,他想知道一个类型为 unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。
你能帮帮小明吗?
并且,小明不想要二进制串中前面的没有意义的 $0$ 串,即要去掉前导 $0$。
输入格式
输入包含多组测试数据。
每组数据占一行,包含一个整数。
输出格式
每组数据输出一行,一个二进制串表示结果。
数据范围
输入整数范围 $\[0,4294967295\]$。
每个输入最多包含 $100$ 组数据。
输入样例:
23
535
2624
56275
989835
输出样例:
10111
1000010111
101001000000
1101101111010011
11110001101010001011
C++ 代码
/*
预备知识积累:【x & 1 == 1】表示x这个数的二进制表示中最低位是1,反之是0
【x >>= 1】相当于将x的二进制表示中的最低位移走,便于判断倒数第二位是0是1
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
unsigned x;
while(scanf("%d", &x) != EOF)
{
string res = "";
if(x == 0) res = "0"; //特殊处理
while(x)
{
if(x & 1) res = "1" + res;
else res = "0" + res;
x >>= 1;
}
cout << res << endl;
}
return 0;
}
别刷了 头发掉完了
七夕节当然要多刷题hhh