方法一:八进制转化为十进制,十进制转换为八进制
#include<math.h>
int f(int n){ //8进制转换为10进制
int i,j;
int count=0;
i=0;
while(n>0) {
count=count+(n%10*pow(8,i));
j=n;
n=n/10;
i++;
if(j==n){
break;
}
}
return count;
}
void d(int m){ //10进制转换为十六进制
if(m<16)
{
if(m<16&&m>9) {
printf("%c",m-10+'a');
}
else
printf("%d",m);
}
else{
d(m/16);
d(m%16);
}
}
int main(){
d(f(5672));
return 0;
}
方法二:直接八进制转十六进制
#include<stdio.h>
void f(int n){
if(n<020){ //16(10进制)——>020(8进制)
if(n>011&&n<=017){ //9(10进制)——>011(8进制) 15(10进制)->017(8进制)
printf("%c",n-012+'a');
}
else
printf("%d",n);
}
if(n>=020){
f(n/020);
f(n%020);
}
}
int main(){
f(045315);
return 0;
}
//今天就写了这一点,写的不好请见谅,如果有什么不同的见解,希望可以提出来。下次更新的内容大抵是二叉树。