-
2005-09-24
进制转换程序
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://zichuan.blogbus.com/logs/1458801.html
#include<iostream.h>
void convert (int x,int n) //n为转换后的进制
{int s[20],y,temp=0,i=4,t=0,z=0,j=0;
int top=0;
if(n==16) //测试是否为十六进制,如果是,先转化为二进制求解
{temp=1;
n=2;}
while(x)
{y=x%n;
s[++top]=y;
x=x/n;
}
if(!temp) //二进制和八进制的输出
{while(top>0)
{cout<<s[top];
top--;
}
}
else //十六进制的输出
{while(top>0)
{
while(top&&i)
{ z=s[top--];
for(j=4-i;j>0;j--)
z=z*2;
t=t+z;
i--;
}
if(t<10)
cout<<t;
else
{switch(t)
{case '10': cout<<'A';break;
case '11': cout<<'B';break;
case '12': cout<<'C';break;
case '13': cout<<'D';break;
case '14': cout<<'E';break;
case '15': cout<<'F';break;
}
}
i=4;
}
}
cout<<endl;
}
void main()
{int m,s;
cout<<"输入一个十进制数:";
cin>>m;
cout<<"输入将要转化的进制:"<<endl;
cin>>s;
convert(m,s);
}
收藏到:Del.icio.us








评论