原代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
for (i = 1; i < argc; i++) {
unsigned long dig = strtoul(argv[i], NULL, 16);
putchar((char) dig);
}
putchar('\n');
return 0;
}
运行结果:
guest-JvQsWU@ubuntu:~/Desktop$ ./a 40 39 38 37 36 35 34 32 31 30 29
@987654210)
guest-JvQsWU@ubuntu:~/Desktop$ ./a 40 29
@)
guest-JvQsWU@ubuntu:~/Desktop$ ./a 35
5
guest-JvQsWU@ubuntu:~/Desktop$
这是个十六进制转换成十进制的程序,调用了库函数strtoul,可将任意进制转变成十进制,再将十进制以对应符号输出,如上面的30十进制为四十八,而四十八对应零。