#include<iostream>
//#include<cstdio>
//#include<cmath>
//#include<cstring>
//#include<iomanip>
#include<cstdlib>
using namespace std;
void TurnData(int n,int a);
char ch[6]={'A','B','C','D','E','F'};
int main(){
int n;
cin>>n;
TurnData(n,2);
TurnData(n,8);
TurnData(n,16);
return 0;
}
void TurnData(int n,int a){
int ga[42],i,j,k=0;//数组定义几都可以,只要比输入的数转换成的进制多就可以
cout<<n<<"turn into"<<a<<":"<<endl;
if(n<0)cout<<"-";//负数先把负号写上
j=abs(n);//绝对值(cstdlib库)
do{
k++;
i=j%a;
j/=a;//一位一位算
ga[k]=i;
}while(j!=0);//数值转换问题除以a取余,再将所有步骤的余数倒过来写出即为a进制
for(int h=k;h>=1;h--){
if(ga[h]<10)cout<<ga[h];
else cout<<ch[ga[h]-10];
}
cout<<endl;
}
C++函数综合应用例题
思路大体就是十进制转换为二进制、八进制、十六进制数时,先将十进制数除以要转化为的n进制数的n,定义新数组并取余数作为第一个值,再将得数继续除以n,余数存到第二个值中,以此类推直到得数为0时(即上述j=0),最后将所得的所有值倒过来首变尾,尾变首即可。