在c中使用bitset容器

前端之家收集整理的这篇文章主要介绍了在c中使用bitset容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含8个字符长的字符串

十六进制转储是8个字节

是801000000000000

这意味着第1位和第12位打开.

如何在c中使用bitset功能,让我的生活更轻松.

谢谢

解决方法

做什么?问题出在哪里?我无法给出一个很好的例子,说明“如何让你的生活更轻松”,而无需解决问题.我所能做的就是向您展示该类如何在应用程序中工作的基础知识.

这是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;
}

猜你在找的C&C++相关文章