如何将c中的任意十六进制转换为ascii?

问题描述:

如何把00000000004004d8转换为ascii字符串?如何将c中的任意十六进制转换为ascii?

例如,41用于A

+0

“42”如何解释为“A”? ??? *在ASCII中,字符“A”的值为65(十进制; 0x41十六进制)*还需要弄清楚如何处理范围之外的十六进制值和奇数长度的输入字符串。 – pmg 2011-04-16 13:23:22

我会用sscanf来做到这一点。例如:

char c[8]; 
sscanf("00000000004004d8", "%02x%02x%02x%02x%02x%02x%02x%02x", 
    &c[0], 
    &c[1], 
    &c[2], 
    &c[3], 
    &c[4], 
    &c[5], 
    &c[6], 
    &c[7]); 
+0

如何使'00000000004004d8'成为一个参数,以便它可以用于仲裁hex? – 2011-04-16 13:43:10