微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐