#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstring>
using namespace std;
string TenToBinary(int num);
int main()
{
cout<<left<<setw(3)<<"十进制";
cout<<left<<"\t"<<setw(8)<<"二进制";
cout<<left<<"\t"<<setw(3)<<"八进制";
cout<<left<<"\t"<<setw(2)<<"十六进制";
cout<<endl;
for(int i=1;i<=256;i++)
{
cout<<left<<setw(3)<<dec<<i<<"\t";//十进制
cout<<right<<"\t"<<setw(8)<<TenToBinary(i);
cout<<left<<setw(3)<<oct<<i;//八进制
cout<<left<<"\t"<<setw(2)<<hex<<i; //十六进制
cout<<endl;
}
return 0;
}
string TenToBinary(int num)
{
string str="";
//寻找最大位置
int maxPos,i=0;
while(pow(2,i)<=num)
{
i++;
}
maxPos=i;
int q,r;//商,余数
r=num;
while(maxPos-1>=0)
{
q=r/pow(2,maxPos-1);
r=r-q*pow(2,maxPos-1);
cout<<q;
maxPos--;
}
return str;
}
运行效果如下