对任意大的位数组或数字进行位操作

时间:2012-08-27 20:06:33

标签: c++ data-structures bit-manipulation

我有一个非常简单的问题:在C ++中,是否有一种内置或简单的方法可以在单个标签中对大量(~1000)位(或bool)进行分组,以使内置位运算符起作用为基本面做什么?

e.g。对于你可以写的long

unsigned long maximum = ~0;

或者可以使用:

somenum>>;

对于任意大小的内存块,是否有类似的方法?

如果没有,有什么好的选择?我曾想过位<vectors>,C union等,但这些似乎都需要手写的例程来进行各种位操作。

2 个答案:

答案 0 :(得分:11)

是的!它被称为 std::bitset ,就是这样。

希望这有帮助!

答案 1 :(得分:0)

此外,boost::dynamic_bitset可能会有用,具体取决于要求。我希望它是标准而不是std::vector<bool>

的黑客