从数据中提取m-n位范围

时间:2019-05-27 07:53:50

标签: c++ c++11 byte bit

我有一个16字节的数据。我需要从中提取并打印不同的数据字段,例如第一个3位,接下来的11位,接下来的7位,等等。

1 个答案:

答案 0 :(得分:0)

只需使用std :: bitset。谷歌对此有更多了解。

    #include <bitset>
    //...
    unsigned char data[16] = { 0, 2, 66, 77, 84, 45, 66, 84, 63, 236, 4, 126, 42, 48, 90, 201 };
    std::bitset<16> bits(data);

    constexpr size_t m = 4;
    constexpr size_t n = 8;

    //Prints bits from m to n
    for (size_t i = m; i <= n; i++)
    {
        std::cout << bits[i] << std::endl;
    }