#include <stdio.h>
#include <string.h>
void func(int a,char b[])
{
char *p,c;
p=b;
while(a!=0)
{
*p=a%16; //取出十进制数的十六进制形式的个位尾数
a/=16;
if(*p>=0&&*p<=9) //把这个尾数转成十六进制字符
{
*p=*p+'0';
}
else
{
*p=*p-10+'A';
}
p++;
}
*p='\0';
for(int i=0,k=(int)strlen(b)-1;i<k;i++) //翻转十六进制字符串
{
c=b[i];
b[i]=b[k];
b[k]=c;
k--;
}
char d[22]="0X"; //在字符串前加上"0X",表示这是十六进制
strcat(d,b);
strcpy(b,d);
}
int main()
{
int a;
char b[20];
printf("请输入一个整数:");
scanf("%d",&a);
func(a,b);
printf("%s\n",b);
return 0;
}
#include <string.h>
void func(int a,char b[])
{
char *p,c;
p=b;
while(a!=0)
{
*p=a%16; //取出十进制数的十六进制形式的个位尾数
a/=16;
if(*p>=0&&*p<=9) //把这个尾数转成十六进制字符
{
*p=*p+'0';
}
else
{
*p=*p-10+'A';
}
p++;
}
*p='\0';
for(int i=0,k=(int)strlen(b)-1;i<k;i++) //翻转十六进制字符串
{
c=b[i];
b[i]=b[k];
b[k]=c;
k--;
}
char d[22]="0X"; //在字符串前加上"0X",表示这是十六进制
strcat(d,b);
strcpy(b,d);
}
int main()
{
int a;
char b[20];
printf("请输入一个整数:");
scanf("%d",&a);
func(a,b);
printf("%s\n",b);
return 0;
}