C++ 在c+中使用位集容器+;

C++ 在c+中使用位集容器+;,c++,C++,我有一个8字符长的字符串,其中包含 8字节的十六进制转储是 是8亿0千万 这意味着第1位和第12位为on 如何在C++中使用BITSET特性,使我的生活变得简单。< /P> 谢谢你做什么?问题在哪里?我真的无法给出一个好的例子来说明“它将如何让你的生活更轻松”,而不需要解决问题。我所能做的就是向您展示该类在应用程序中如何工作的基本知识 这里有一个关于它的链接。如果您只想处理一组简单、恒定大小的位,那么您可以轻松地创建一组位。如果你想要一个可以生长或收缩的,看看。下面是标准位集的一个快速示例: s

我有一个8字符长的字符串,其中包含

8字节的十六进制转储是

是8亿0千万

这意味着第1位和第12位为on

如何在C++中使用BITSET特性,使我的生活变得简单。< /P>
谢谢你做什么?问题在哪里?我真的无法给出一个好的例子来说明“它将如何让你的生活更轻松”,而不需要解决问题。我所能做的就是向您展示该类在应用程序中如何工作的基本知识

这里有一个关于它的链接。如果您只想处理一组简单、恒定大小的位,那么您可以轻松地创建一组位。如果你想要一个可以生长或收缩的,看看。下面是标准位集的一个快速示例:

std::bitset<40> imFiveBytesLong;

imFiveBytesLong.set(0, true);
设置了第0位。您可以通过询问以下内容来测试位是否已设置:

bool isItSet = imFiveBytesLong.test(0);
std::size_t numSet = imFiveBytesLong.count();
或者,您可以通过询问以下问题来计算设置位数:

bool isItSet = imFiveBytesLong.test(0);
std::size_t numSet = imFiveBytesLong.count();
编辑

要回答下面的评论,请查看bitset方法和bitset方法之一。综合起来:

int main ()
{
  std::bitset<10> mySet(120ul);          // initialize from unsigned long

  std::cout << mySet.to_uLong();         // print as an unsigned long

  return 0;
}
int main()
{
std::bitset mySet(120ul);//从无符号长字符串初始化

std::cout有什么问题吗?我看不到有
。@karlphillip..any?*在那里。我如何使我的字符串完全无符号长,并从无符号长初始化?