lnum代表你输入的长整数 初始时l=0;
while(num)
{ a[l++]=num%16;
num/=16;}
for(i=l-1;i>=0;i--)
printf("%d",a[i]); // 输出转换结果
printf("\n");
char sz[256] = {0};
long lVal = 16;
sprintf(sz, "0x%0x", lVal); //将十进制整数转换成十六进制字符串
printf(sz);
直接输出更简单了
printf("0x%0x", lVal);
long a;scanf("%d",&a);/*十进制输入*/printf("%x",a);/*十六进制输出*/
#include
#include
char buf[200];
unsigned long val;
fgets(buf, sizeof(buf), stdin);
val = strtoul(buf, NULL, 10);
printf ("十进制=%lu 16进制=0x%lx\n", val, val);