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

时间:2019-01-10 11:06:50

标签: c arrays string hex

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

输入:

uint8_t myarr[4]={0x11,0x12,0x33,0x1A}

输出:

 1112331A

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

2 个答案:

答案 0 :(得分:5)

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

还请注意,这些值将不会存储为十六进制。十六进制只是表示值的一种形式。

答案 1 :(得分:1)

原始数据到ASCII十六进制转换的传统方法是使用基于半字节的查找表:

Sub HighlightTwentyPercent()

Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Dim rng As Range
Set sht = Worksheets("Input raw")
Set StartCell = Range("F2")
Dim cl As Range


LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

Set rng = sht.Range(StartCell, sht.Cells(LastRow, 6))

For Each cl In rng.SpecialCells(xlCellTypeVisible)

    cl.Interior.Color = RGB(255, 12, 29)

Next cl

End Sub