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';
        }
    }
}
posted @ 2023-02-27 08:54  Keith-  阅读(57)  评论(0编辑  收藏  举报