【发布时间】:2019-06-05 05:52:29
【问题描述】:
我想将字节数组uint8_t十六进制值转换为字符数组字符串(**相同的值不是ASCII),然后简单地打印这个字符串数组如下:
输入:
uint8_t myarr[4]={0x11,0x12,0x33,0x1A}
输出:
1112331A
简单的 char 数组字符串不是十六进制数组字符串。
【问题讨论】:
-
如果我正确理解您的问题,您所要求的通常称为“十六进制转储”。谷歌“hex dump c”或其他东西来获取示例。如果您对此有疑问,请尝试使用您自己的代码更多地扩展问题,因为很多事情取决于您的实际需求。
-
获得所需输出的短代码:
for(int i=0; i<4; ++i) printf("%02X", myarr[i]);。如果你真的想要一个字符串,它当然会变得有点复杂,因为 C 如何处理字符串,并且需要问题中缺少的那些额外细节。 -
什么是“十六进制数组字符串”?字符串总是以 0 字节结尾的单个字符序列。