包含位向量操作的类型转换

时间:2016-06-29 17:32:19

标签: c casting

这是我的代码:

uint8_t data[3] = {u >> 16, u >> 8, u & 0xff };

u原来是uint32_t

如何将右侧投射到uint8_t?我已尝试撰写(uint8_t)(u >> 16),但后来我收到u>>16不符合uint8_t范围的投诉。

1 个答案:

答案 0 :(得分:1)

您需要将每个元素转换为uint8_t

uint8_t data[3] = {(uint8_t)(u >> 16), (uint8_t)(u >> 8), (uint8_t)(u & 0xff) };