📄 进制转换器.cpp
字号:
#include<iostream>
using namespace std;
void change(int dec_num,int carry_num)
{
int rem[32],i=0;
do
{
rem[i]=dec_num%carry_num;
dec_num/=carry_num;
i++;
}while(dec_num>0) ;
for(int j=i-1;j>=0;j--)
{
switch(rem[j])
{
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;
default:cout<<rem[j];
}
}
}
void change2()//2
{ int s=0,m=1,k,p;
cin>>k;
do
{s=s+(k%10)*m;
m=m*2;
k/=10;
}while(k!=0);
cout<<"输入所需转换的进制:"<<endl;
cin>>p;
cout<<"该数的"<<p<<"进制数为"<<endl;
change(s,p);
cout<<endl;
}
void change8()//8
{ int s=0,m=1,k,p;
cin>>k;
do
{s=s+(k%10)*m;
m=m*8;
k/=10;
}while(k!=0);
cout<<"输入所需转换的进制:"<<endl;
cin>>p;
cout<<"该数的"<<p<<"进制数为"<<endl;
change(s,p);
cout<<endl;
}
void welcome()
{
cout<<"***************************************************"<<endl;
cout<<"* *"<<endl;
cout<<"* 进制转换器 *"<<endl;
cout<<"* 2005-12-13 *"<<endl;
cout<<"* *"<<endl;
cout<<"***************************************************"<<endl;
cout<<endl;
cout<<"欢迎进入*SUPERMAN进制转换器*,请选择您需要的数制转换:"<<endl;
cout<<endl;
cout<<"1. 查看程序说明"<<endl;
cout<<"2. 10进制--> 其他任意进制"<<endl;
cout<<"3. 2 进制--> 其他任意进制"<<endl;
cout<<"4. 8 进制--> 其他任意进制"<<endl;
cout<<"5. 16进制--> 其他任意进制"<<endl;
cout<<endl;
cout<<"☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ "<<endl;
cout<<endl;
}
void direction()
{
cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;
cout<<"☆以下为本程序使用说明: ☆"<<endl;
cout<<"☆ ☆"<<endl;
cout<<"☆ 1.请按首界面指示选择所需功能; ☆"<<endl;
cout<<"☆ ☆"<<endl;
cout<<"☆ 2.本程序可用于将10、2、8、16进制数转换为任意进制数; ☆"<<endl;
cout<<"☆ ☆"<<endl;
cout<<"☆ 3.由于能力有限,十六进制转换成其他进制时,请输入4位数,否则将出现 ☆"<<endl;
cout<<"☆ 错误,这也是本程序的一大缺陷; ☆"<<endl;
cout<<"☆ ☆"<<endl;
cout<<"☆ 4.初学C++,有许多地方需要改进,小弟在此真诚地希望各位高手多多指教! ☆"<<endl;
cout<<"☆ 联系我——QQ:435787899 ☆"<<endl;
cout<<"☆ 等待与您一起畅游C++的神秘世界! ☆"<<endl;
cout<<"☆ ☆"<<endl;
cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;
}
int u(int n)
{
int sum=1;
for(int i=1;i<=n;i++)
sum=sum*16;
return sum;
}
void change16()//16
{
char ch[5];
int a,summ=0,i,p;
cout<<"请输入一个四位十六进制数,★注意:少于四位的请在前面补“0”!★"<<endl;
cin>>ch;
for(i=0;i<=3;i++)
{
if(ch[i]>='0' && ch[i]<='9')
a=ch[i]-48;
else
switch(ch[i])
{
case 'a':a=10;break;
case 'b':a=11;break;
case 'c':a=12;break;
case 'd':a=13;break;
case 'e':a=14;break;
case 'f':a=15;break;
}
summ=summ+a*u(3-i);
}
cout<<"输入所需转换的进制:"<<endl;
cin>>p;
cout<<"该数的"<<p<<"进制数为"<<endl;
change(summ,p);
cout<<endl;
}
void mid()
{
cout<<"请输入1-5选择所需项:"<<endl;
int x;
cin>>x;
int dec_number,carry_number;
if(x==2)
{
cout<<"输入一个十进制数:";
cin>>dec_number;
cout<<"输入要转换成的进制★(可为任意进制):";
cin>>carry_number;
change(dec_number,carry_number);
cout<<endl;
}
else if(x==3)
{
cout<<"输入一个二进制数:"<<endl;
change2();
cout<<endl;
}
else if(x==4)
{
cout<<"输入一个八进制数:"<<endl;
change8();
cout<<endl;
}
else if(x==5)
{
change16();
cout<<endl;
}
else if(x==1)
{
direction();
cout<<endl;
}
else cout<<"输入错误"<<endl;
}
int mid2()
{ int w;
cout<<"是否继续?输入 1 继续 ,输入其他键退出 :"<<endl;
cin>>w;
cout<<"****************************************************"<<endl;
if(w==1)
{
mid();
mid2();
}
else return 0;
return 0;
}
int main()
{
int putin=1;
welcome();
cout<<endl<<"是否进入菜单?"<<endl;
cout<<"1----进入"<<endl;
cout<<"0----退出"<<endl;
while(putin)
{
cout<<"请选择:";
cin>>putin;
switch(putin)
{
case 1:
cout<<endl;
void welcome();
void mid();
int mid2();
mid();
mid2();
break;
}
if(putin!=0&&putin!=1)
{
cout<<"输入有误,请重新输入!"<<endl;
cout<<endl;
}
if(putin==1)
{
putin=0;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -