#include <stdio.h>
#include <stdlib.h>
#define MAX 255
void TenToSix(int n)
{
char a[MAX],sign =1;
int i=0;
if(n==0)
{
printf("HEX = %d\n",n);
exit(0);
}
if(n < 0)
{
sign = 0;
n = -n;
}
while( n!=0)//求余辗除法
{
a[i++] = n %16;
n = n/16;
}
printf("Hex=%c0x",sign?' ':'-');
for(;i>0;i--)
{
switch(a[i-1])
{
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 16:printf("f");break;
default:printf("%d",a[i-1]);
}
}
}
对于正负数的处理,应该使用最高位0,1表示。