0

Astd::bitset不是整数,它是位数组。但是当我用正确顺序的位初始化它时(就像我使用数组一样),似乎所有位都像 Endian 交换一样被反转了。

我想要的模式是:

[1] 0 1  0  1  1  0  1  0  1  0  1  // [1] should be array Element[0].

我用这个初始化:

std::bitset<12> bMyBitset("101011010101");

但是当我使用打印出数组元素的函数时,我得到了这个:

// Backwards:
[0] = 1, [1] = 0, [2] = 1, [3] = 0, [4] = 1, [5] = 0, [6] = 1, [7] = 1, [8] = 0, [9] = 1, [10] = 0, [11] = 1

我想要的是这样的:

// Forward:
[0] = 1, [1] = 0, [2] = 1, [3] = 0, [4] = 1, [5] = 1, [6] = 0, [7] = 1, [8] = 0, [9] = 1, [10] = 0, [11] = 1

我知道我可以手动将所有位向后放入初始化字符串中,但这非常繁琐且容易出错。我正在寻找一种解决方案,我可以将它们按照与初始化数组时相同的顺序放置,首先使用 Element[0]。

我想做这个:

std::bitset<12> bMyBitset {1,0,1,0,1,1,0,1,0,1,0,1};
// no matching function for call to 'std::bitset<12>::bitset(<brace-enclosed initializer list>)'

如何bitset按数组顺序初始化一个元素?

4

0 回答 0