如何在C中将uint8_t值数组转换为十六进制转储字符串

Ehs*_*nur 0 c arrays string hex

我想将字节数组的uint8_t十六进制值转换为char数组字符串(**相同的值不是ASCII),然后简单打印此字符串数组,如下所示:

输入:

uint8_t myarr[4]={0x11,0x12,0x33,0x1A}
Run Code Online (Sandbox Code Playgroud)

输出:

 1112331A
Run Code Online (Sandbox Code Playgroud)

简单char数组字符串不是十六进制数组字符串.

Som*_*ude 5

只需遍历数组的元素,然后使用格式说明符printf打印每个元素"%hhx".

另请注意,值不会存储为十六进制.十六进制只是一种表达价值的形式.

  • 正确的格式字符串实际上来自inttypes.h中的"%"PRIx8`. (3认同)