将十进制数转化为十六进制数:
#include<stdio.h>
char *int2hex(unsigned int num)
{
static char hex[11];
hex[0]=’0’;
hex[1]=’x’;
hex[10]=’\0’;
unsigned int mask=0x0000000f;
int i=0;
for(i=9;i>=0;i--)
{
hex[i]=num&mask;
if((unsigned int)(num&mask)<10)
{
hex[i]=(num&mask)+’0’;
}
if((unsigned int )(num&mask)>=10)
{
hex[i]=(num&mask)-10+’a’;
}
num=num>>4;
}
return hex;
}
int main()
{
unsigned int num;
printf(“please input a number:”);
scanf(“%d”,&num);
char *temp=int2hex(num)
printf(“the result is:%c\n”,temp);
}