在c编程中添加两个ASCII值

Use*_*ser 0 c microcontroller

我收到一个十六进制值

uint8_t length = rx_dataframe.dlc// Current value of this in hex is 0x08
Run Code Online (Sandbox Code Playgroud)

我试图从这个值得到一个char值("8").根据ASCII表,十六进制值"8"是0x38.我试过直接添加"0"但在这里感到困惑

tx_buff_dlc[0]= (rx_dataframe.dlc)+"0";// I know its not currect but just thought  
Run Code Online (Sandbox Code Playgroud)

tx_buff_dlc[0]=0x08+0x30将等于0x038并将获得"8"

有人可以解释如何在C中完成十六进制值的添加

Dre*_*wen 9

"0"表示一个字符串,它具有特定的地址.添加会给你一些内存中的随机位置,这不是你想要的.

相反,使用引号:'0'.这将编译为字符的任何值'0'(对于ASCII,它是你提到的0x30).然后,添加将按预期工作.