十–>二进制转换
Time Limit:1000MS Memory Limit:32768K
Description:
将十进制整数转换成二进制数。
Input:
输入数据中含有不多于50个整数n
Output:
对于每个n,以11位的宽度右对齐输出n值,然后输出“–>”,再然后输出二进制数。每个整数n的输出,独立占一行。
Sample Input:
2
0
-12
1
Sample Output:
2-->10
0-->0
-12-->-1100
1-->1
代码如下
#include<iostream>
#include<sstream>
#include<vector>
#include<iomanip>
#include<algorithm>
using namespace std;
int main(){
for(int n;cin>>n;)
{ cout<<setw(11)<<n<<"-->";
if(n==0){cout<<0<<"\n";continue;
}
if(n<0){cout<<"-";n= -n;}
int i=31;
while(!(n&1<<i)) i--;
for(int k=i;k>=0;--k)
cout<<(n>>k&1);
cout<<endl;}
return 0;
}