没有细想,直接用了一个比较笨的方法,另外我不知道前面的零要不要去掉,前两位0x是代表是十六进制数吧,我记得好像是。
#include
#define N 1000
int is_change(char ch);
int main(void)
{
char str[N];
int i;
while(gets(str) != NULL)
{
for(i = 2;str[i] != '\0';i ++)
{
is_change(str[i]);
}
}
return 0;
}
int is_change(char ch)
{
switch(ch)
{
case '1':
printf("0001");
break;
case '2':
printf("0010");
break;
case '3':
printf("0011");
break;
case '4':
printf("0100");
break;
case '5':
printf("0101");
break;
case '6':
printf("0110");
break;
case '7':
printf("0111");
break;
case '8':
printf("1000");
break;
case '9':
printf("1001");
break;
case 'a':
case 'A':
printf("1010");
break;
case 'b':
case 'B':
printf("1011");
break;
case 'c':
case 'C':
printf("1100");
break;
case 'd':
case 'D':
printf("1101");
break;
case 'e':
case 'E':
printf("1110");
break;
case 'f':
case 'F':
printf("1111");
break;
}
return 0;
}