如何将uint32变量转换为2个第十六单元变量



我有一个uint32变量的向量,对我来说没有意义。但是它们的前16位和后16位是有意义的。然后我需要将它索引到c++中的2个uint16变量。这个问题我该怎么办?

下面是一个实现。

vector<uint32_t> a = {/*your data goes here*/};
vector<uint16_t> mostSignificantBits, leastSignificantBits;
for(uint32_t i : a) {
mostSignificantBits.push_back((uint16_t)(i >> 16));
leastSignificantBits.push_back((uint16_t)i);
}

简单地铸造它将需要16个最低有效位。

为了检索最高有效位,我们使用右移。

最新更新