解决方法
做什么?问题出在哪里?我无法给出一个很好的例子,说明“如何让你的生活更轻松”,而无需解决问题.我所能做的就是向您展示该类如何在应用程序中工作的基础知识.
这是interface的链接.如果你想处理一个简单的,恒定大小的位组,那么你可以轻松制作一个.如果你想要一个可以增长或缩小的产品,请看Boost.这是一个标准bitset的简单示例:
std::bitset<40> imFiveBytesLong; imFiveBytesLong.set(0,true);
现在看起来像
0000000000000000000000000000000000000001
设置第0位.你可以通过询问来测试是否设置了该位:
bool isItSet = imFiveBytesLong.test(0);
或者您可以通过询问来计算设置位数:
std::size_t numSet = imFiveBytesLong.count();
编辑:
要回答下面的评论,请查看bitset的to_ulong方法和bitset的constructors之一.把它放在一起:
int main () { std::bitset<10> mySet(120ul); // initialize from unsigned long std::cout << mySet.to_uLong(); // print as an unsigned long return 0; }