我收到一个十六进制值
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
中完成十六进制值的添加答案 0 :(得分:9)
"0"
表示一个字符串,它具有特定的地址。添加会给你一些内存中的随机位置,这不是你想要的。
而是使用单个引号:'0'
。这将编译为字符'0'
的值(对于ASCII,如前所述,它是0x30)。然后,添加将按预期工作。