第一种:用来糊弄老师的,输入一个数采用16进制格式输出
#include
intmain()
{
intnum=0;
scanf("%d",&num);
printf("%x",num);
return0;
}
第二种:
#include
#include
charoNumTable[6]={'A','B','C','D','E','F'};
voiddToO(int,char*);
intmain()
{
intdNum;
charoNum[100]={0};
//输入一个十进制数
scanf("%d",&dNum);
//调用转换函数,将十进制转换成以字符串表示的十六进制
dToO(dNum,oNum);
//输出以字符串表示的16进制数据
printf("%s\n",oNum);
return0;
}
voiddToO(intdNum,char*oNum)
{
chartemp[100]={0};
for(inti=0;(dNum)&&(i
temp[i]=(dNum%16);
if(temp[i]>9){
temp[i]=oNumTable[temp[i]-10];
}
else{
temp[i]+='0';
}
dNum/=16;
}
char*p=temp;
while(*(p+1))p++;
for(inti=0;p!=temp-1;i++,p--){
oNum[i]=*p;
}
}
//下面是10进制转换成任意进制数
#include"stdio.h"
main()
{
inti=0,m,n,r,a[40];
charstr[16]="0123456789ABCDEF";
printf("\n请输入一个整数和要转换成的进制数\n");
scanf("%d%d",&m,&r);/*r代表进制数*/
if(m<0)
{printf("%c",'-');
m=-m;}/*判断是否输入的是负数*/
do{
a[i++]=m%r;
m=m/r;}while(m>0);/*m对r取余数,再除以r*/
printf("转换结果是:\n");
for(n=i-1;n>=0;n--)
printf("%c",str[a[n]]);
}
//够简单吧!