我正在尝试从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];
}
但这并没有给我我想要的结果。我也不知道如何起诉比例因子。
非常感谢您的帮助。
答案 0 :(得分:0)
这可能不是“c ++”,但我会对相应的整数进行一些操作:
ulong roota_binary = (((word8_binary.to_ulong() >> 6) & 0xFF) <<24) +
((word9_binary.to_ulong() >>6) & 0xFFFFFF);
>>6
摆脱了奇偶校验位,掩码隔离了你需要的位,<<24
将高位置放在最前面。