1.6 十进制转换为二进制

                               1.6 十进制转换为二进制

1.6.1 题目内容

将十进制整数转换成二进制数。
输入描述:输入数据中含有不多于 50 个的整数 n(-2^{32}<n< 2^{32} )。
输出描述:对于每个 n,以 11 位的宽度右对齐输出 n 值,然后输出“-->”,再然后输出二进制数。每个整数 n 的输出,独立占一行。
输入样例 


-12 

输出样例 
 2-->10 
 0-->0 
 -12-->-1100 
 1-->1

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string s;//全局变量
int main(int argc, char* argv[])
{
 int n;
 while(cin>>n)
 {
 if(n==0){
 cout<<" 0-->0\n";
 continue;
 }
 s="";
 for(int a=n;a;a=a/2){
 s=s+(a%2?'1':'0');
 }
 std::reverse(s.begin(),s.end());
 const char*sss=s.c_str();
 cout.width(11);//输出宽度为 11
 cout<<n<<(n<0?"-->-":"-->")<<sss<<"\n";
 }
 return 0;
}


 

猜你喜欢

转载自blog.csdn.net/qq_41668789/article/details/82120012