1.将十六进制转换为十进制.
#include
#include
int main(void){
int convert(int,char *);
int i,j ;
char m[20];
printf("请输入你要转换的数:");
scanf("%s",m);
i 0;
while(*(m+i)! '\0'){
i++;
}
j convert(--i,m);
printf("转换为十进制是:%d\n",j );
return 0;
}
int convert(int a,char *p){
int i,j ,sum;
sum 0;
for(i 0;i< a;i++){
if(*(p+i)< 'f'&&*(p+i)> 'a')
j (int)(*(p+i))-87;
else if(*(p+i)< 'F'&&*(p+i)> 'A')
j (int)(*(p+i))-55;
else
j (int)(*(p+i))-48;
sum sum+pow(16,a-i)*j ;
}
return (sum);
}
2.将十进制转换为十六进制.
#include
int main(void)
{
int i,a[20],m,m_old;
char c;
i 0;
printf("请输入你要转换的数:");
scanf("%d",&m);
m_old m;
while(m! 0){
a[i] m%16;
m/ 16;
i++;
}
i--;
/*for(;i> 0;i--){
printf("%d ",*(a+i));
}*/
printf("%d转换为十六进制是:",m_old);
for(;i> 0;i--){
/*switch(a[i]){
case(10):printf("A");break;
case(11):printf("B");break;
case(12):printf("C");break;
case(13):printf("D");break;
case(14):printf("E");break;
case(15):printf("F");break;
default: printf("%d",a[i]);
}*/
if(a[i]> 10){
c 55+a[i];
printf("%c",c);
}
else
printf("%d",a[i]);
}
printf("\n");
return (0);
}