⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 进制转换器.cpp

📁 为了提高工作效率
💻 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 + -