c++的進位制轉換

遠飛夢發表於2018-11-05

 

#include<iostream>
using namespace std;
int main()
{
	int n;
	cout<<"請輸入待轉換的十進位制數:";
	cin>>n;
	int number[100];//進位制轉換;
	int m,j,trans;
	for(int i=0;i<=2;i++)//依次做2,8,16進位制的轉換; 
	{
		j=0;m=n;
		if(i==0) trans=2;
		if(i==1) trans=8;
		if(i==2) trans=16;
		while(m!=0)
		{
			number[j++]=m%trans;//根據演算法可以知道; 
			m=m/trans;
		}
		cout<<"轉換為"<<trans<<"進位制,"<<n<<"是:"; 
		j--;
		while(j>=0)
		{
			char ch;
			if(number[j]>=0&&number[j]<=9)//針對2進位制和8進位制; 
			ch=number[j]+'0';//加'0'是怕出現程式碼混亂; 
			else
			ch=number[j]-10+'A';//16進位制; 
			cout<<ch;
			j--;
		}
		cout<<endl;
	 } 
	 return 0;
	
}

相關文章