在c编程中添加两个ASCII值

时间:2014-08-14 16:09:05

标签: c microcontroller

我收到一个十六进制值

uint8_t length = rx_dataframe.dlc// Current value of this in hex is 0x08

我正在尝试从此值获取char值(“8”)。根据ASCII表,十六进制值“8”是0x38。 我试过直接添加“0”,但在这个

中感到困惑
tx_buff_dlc[0]= (rx_dataframe.dlc)+"0";// I know its not currect but just thought  

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

有人可以解释如何在C

中完成十六进制值的添加

1 个答案:

答案 0 :(得分:9)

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

而是使用单个引号:'0'。这将编译为字符'0'的值(对于ASCII,如前所述,它是0x30)。然后,添加将按预期工作。