把结果都列出来,可以提升代码运行速率
#include<stdio.h> char hex_char(unsigned int n) { switch(n) { case 0: return \'0\'; case 1: return \'1\'; case 2: return \'2\'; case 3: return \'3\'; case 4: return \'4\'; case 5: return \'5\'; case 6: return \'6\'; case 7: return \'7\'; case 8: return \'8\'; case 9: return \'9\'; case 10: return \'a\'; case 11: return \'b\'; case 12: return \'c\'; case 13: return \'d\'; case 14: return \'e\'; case 15: return \'f\'; } return 0; } void int_hex(unsigned int n) { int i = n % 16; if(n >= 16) int_hex(n / 16); printf("%c", hex_char(i)); //后序输出 } int main() { /*int a = 20; printf("%x\n", a); //%x直接输出16进制 return 0; */ int a = 15; scanf("%d", &a); int_hex(a); //void的函数直接调用 printf("%c", a); //%c输出单个字符 return 0; }