【发布时间】:2019-12-05 12:42:20
【问题描述】:
我遇到了问题,以 int32_t 类型传输索引(uint16_t)和数据(int16_t),但我还没有成功。
我尝试的是以下内容:
int32_t buf = (int16_t) data;
buf |= ((int32_t idx)<<16);
但这仅适用于正数据,因为 2 补码会在 MSB 处加一。我怎样才能做到这一点?
【问题讨论】:
-
buf应该是 uint32_t。buf = data & 0xffff;