这是我的代码:
uint8_t data[3] = {u >> 16, u >> 8, u & 0xff };
u
原来是uint32_t
。
如何将右侧投射到uint8_t?我已尝试撰写(uint8_t)(u >> 16)
,但后来我收到u>>16
不符合uint8_t
范围的投诉。
答案 0 :(得分:1)
您需要将每个元素转换为uint8_t
:
uint8_t data[3] = {(uint8_t)(u >> 16), (uint8_t)(u >> 8), (uint8_t)(u & 0xff) };