我想要做的基本上是
例如:'a' 的十六进制等价物是 0x61
,我能否将 61
分解成 6
和 1
并将它们存储为 '6'
和 '1'
?
一个缓冲区正在接收像这样的数据:
rx_dataframe.data[0] is H'00,'.'// H' is Hex equivalant and '' is ASCII value
rx_dataframe.data[0] is H'31,'1'
rx_dataframe.data[0] is H'32,'2'
rx_dataframe.data[0] is H'33,'3'
我需要将十六进制值0x00,0x31,0x32,0x33
转换为字符值'0','0','3','1','3','2'; '3','3'
并存储在tx_buff_data []
的位置。
我希望我的tx_buff_data
看起来像这样
tx_buff_data[0] have H'30,'0'
tx_buff_data[1] have H'30,'0'
tx_buff_data[2] have H'33,'3'
tx_buff_data[3] have H'31,'1'
tx_buff_data[4] have H'33,'3'
tx_buff_data[5] have H'32,'2'
tx_buff_data[6] have H'33,'3'
tx_buff_data[7] have H'33,'3'
"0123456789ABCDEF"[lo];
这种写法。这是新的吗? - Fiddling Bitsconst char *hex = "0123456789ABCDEF"; char loChar = hex[lo];
是一样的,只是没有额外的本地变量。 - Drew McGowen“0123456789ABCDEF”
是一个数组,[i]
是用于访问偏移量为i
(从零开始)的元素的括号符号。可能会让人惊讶的是,您可以使用相反顺序的参数和[]
:i["0123456789ABCDEF"]
也有效,并且对于i==6
,其计算结果为'6'
。 - chqrlie