#include<stdio.h>
#include<stdlib.h>
#define N 16
int main()
{
int m,r,j;
int cnt=0;
int binary[50];
int DEC;
printf("输入一个十进制数:(Ctrl+Z)结束\n");
while(scanf("%d",&DEC)!=EOF)
{
int i = 0; m = DEC;
while(m/N != 0){
r = m % N;
m = m / N;
binary[i++] = r;
}
binary[i++] = m;
printf("0x");
for(j = i - 1; j >= 0; j--)
{
if( binary[j] >9 && binary[j] <16 )
{
switch(binary[j])
{
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 15:printf("F");break;
default:
printf("a");
}
}else if( binary[j] == 16){
printf("0");
binary[j-1]+=1;
}else{
printf("%d",binary[j]);
}
}
printf("\n");
}
return 0;
}
09-12