将十六进制转换为Ascii内存访问

时间:2015-04-08 01:07:54

标签: c

所以我有一个填充十六进制值的内存块,我想读取这些十六进制值作为Ascii。不幸的是,我似乎无法弄清楚如何做到这一点。

char* charstring = malloc(sizeof(uint16_t));
uint8_t test = 0x65;
sprintf(charstring, "%x ", test);
fprintf(Output, "%s", charstring);
free(charstring);

这只给了我很多" 65"而不是" e"我在期待。 我知道这是一个简单的问题,但我真的点击了谷歌首页上的每个链接,无法解决我的问题!

1 个答案:

答案 0 :(得分:5)

您获得65,因为您使用%x作为格式说明符,将其更改为%c以获取字符值。

请注意,对于null终止符,您没有足够的charstring空间。解决它。