将 bitset<64> 转换为 quint8

Convert bitset<64> to quint8

我有一个 bitset<64>(16 位串行和 48 位时间戳),我想将其写入 quint8 *data

bitset<64> 看起来像:

1111001010100101...

我希望 data 看起来像:

data[0] = 11110010
data[1] = 10100101
...

如果有人能帮助我实现它,我将不胜感激。

如果我理解正确,那么这就完成了你的要求:

#include <iostream>
#include <bitset>

int main()
{
    std::bitset<64> bits64{0b0111101111011001110011010101110001111011110110011100110101011100};

    /*
    01111011
    11011001
    11001101
    01011100
    01111011
    11011001
    11001101
    01011100
    */

    for (auto i = 7; i >= 0 ; i--)
        std::cout << std::bitset<8>{bits64.to_ullong() >> (i * 8)} << std::endl;

    return 0;
}

输出:

01111011
11011001
11001101
01011100
01111011
11011001
11001101
01011100

您可以更改 for 循环语句,使其以您选择的任何字节顺序发出。

关键是在积分值上使用the shift operator<<>>)。