10进制转2进制数
10 进制转2进制数
大家都知道,数据在计算机里中存储是以二进制的形式存储的。
有一天,小明学了 C
语言之后,他想知道一个类型为 unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。
你能帮帮小明吗?
并且,小明不想要二进制串中前面的没有意义的 0
串,即要去掉前导 0
。
输入格式
输入包含多组测试数据。
每组数据占一行,包含一个整数。
输出格式
每组数据输出一行,一个二进制串表示结果。
数据范围
输入整数范围 [0,4294967295]
。
每个输入最多包含 100
组数据。
输入样例:
23
535
2624
56275
989835
输出样例:
10111
1000010111
101001000000
1101101111010011
11110001101010001011
思路
用数组模拟的栈获取10进制数中二进制形式的每一位,然后输出栈
代码
点击查看代码
#include<iostream>
using namespace std;
typedef long long LL;
const int N = 32;
int st[N];
int main(){
LL n;
while(cin >> n){
if(!n){
cout << 0 << '\n';
}
else{
int top = 0;
while(n){
st[++top] = n & 1;
n >>= 1;
}
while(top){ //下标从1开始的栈
cout << st[top--];
}
cout << '\n';
}
}
}