我想将字节数组uint8_t
的十六进制值转换为char数组字符串(**相同值,不是ASCII ),然后简单地打印此字符串数组,如下所示:
输入:
uint8_t myarr[4]={0x11,0x12,0x33,0x1A}
输出:
1112331A
简单char数组字符串而不是十六进制数组字符串。
答案 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