STL中的bitset可以直接将十进制数转成二进制数,由bitset的语法可知,二进制数的位数是预先自己设定的,超出的部分系统自动补零,因此输出的时候删去前导零,即从最先不是0的位数开始输出即可。
C++ 代码
#include<iostream>
#include<bitset>
const int N=35;
using namespace std;
unsigned int n;
int main()
{
while(cin>>n)
{
bitset<N> ans(n);
int p;
for(p=N;ans[p]==0;p--); //从最先不是0的位数开始输出
for(int i=p;i>=0;i--)
{
cout<<ans[i];
}
cout<<endl;
}
}