将一个词的两个部分与另一个词的一部分组合并使用比例因子

Combining two part of a word with a part of another word and using a scale factor

我正在尝试从 GPS 接收器中提取数据。他们传递信息的方式如下图所示。

我正在尝试获取 roota。我在单独的位集中有单词 8 和单词 9。如何将相关位组合成一个位集?

我还需要使用这个比例因子信息来得到一个双精度数。比例因子信息如下所示。

我试过了

std::bitset<32> word8_binary; // is filled with word 8 data.
std::bitset<32> word9_binary; // is filled with word 9 data.

std::bitset<32> roota_binary;

for (int i=13; i>5; i--)
{             
    roota_binary = word8_binary[i] << 32 | word9_binary[i];
} 

但这并没有给我想要的结果。我也不知道怎么起诉比例因子

非常感谢您的帮助。

这可能 "c++" 不够,但我会对相应的整数进行位操作:

ulong roota_binary = (((word8_binary.to_ulong() >> 6) & 0xFF) <<24) +
                     ((word9_binary.to_ulong() >>6) & 0xFFFFFF); 

>>6去掉奇偶校验位,掩码隔离你需要的位,<<24把高位放在最上面。