十进制转化为二进制,在这里使用了string容器中的"+"显得很方便。
#include<cmath>
#include<fstream>
#include<string>
#include<algorithm>
using namespace std;
string s;
int main(int argc,char*argv[])
{
ifstream cin("aaa.txt");
int n;
while(cin>>n)
{
if(n==0)
{
cout<<"0-->0\n"<<endl;
continue;
}
s="";
for(int a=n;a;a=a/2)s=s+(a%2?"0":"1"); //不需要考虑正负
// reverse(s.begin(),s.end()); //翻转
// const char*sss=s.c_str(); //c_str()返回一个指向字符串地址的指针
cout.width(11); //输出11位宽度
cout<<n<<(n>0?"-->":"-->-")<<s<<endl;
}
return 0;
}