308得票13回答
如何使用cout打印二进制格式的数字?

我正在学习一门关于操作系统的大学课程,我们正在学习如何将二进制转换为十六进制、十进制转换为十六进制等,今天我们刚刚学习了如何使用二进制补码(~number + 1)在内存中存储带符号/无符号数。 我们有几个练习题需要手写计算,但在提交作业给老师之前我想要验证我的答案是否正确。我已经用C++编写...

92得票1回答
为什么libc++的vector<bool>::const_reference不是bool类型?

第23.3.7节 类vector&lt;bool&gt; [vector.bool],第1段陈述: template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: ...

39得票2回答
为什么std::bitset没有迭代器?

看起来 std::bitset 没有STL迭代器。 因此,我无法执行以下操作: std::bitset&lt;8&gt; bs; for (auto it: bs) { std::cout &lt;&lt; "this can not be done out of the box\n...

21得票2回答
有没有一种更优雅的方法将一个两状态字符串转换为位集,而不仅仅是通过一个“for”循环?

我编写了这段代码来将一个两状态字符串("+++--+-"或"yynnny")转换为std::bitset: #include &lt;bitset&gt; #include &lt;cstddef&gt; #include &lt;string&gt; #include &lt;iostre...

15得票2回答
在位集中,我可以使用“to_ulong”来处理特定范围的位吗?

我正在处理一个需要访问特定位和位范围的东西。 我决定使用bitset,因为它很容易访问特定位; 如何提取一段(子集)比特? 我正在处理一个需要访问特定位和位范围的项目。我决定使用bitset,因为它可以轻松地访问特定位。如何提取一定范围的比特呢?

14得票2回答
如何将所有位都初始化为1的bitset类型

我知道如何对已构建的bitset对象使用set()函数,但我需要一个所有位都为1的构建好的bitset。这种情况通常用于默认函数参数。void bar(std::bitset&lt;100&gt; flags = X) { } 应该是什么值,-1可能适用于前64位,但并非所有情况都适用。

14得票3回答
枚举是实现位标志的规范方式吗?

目前我正在使用枚举来表示一个小游戏实验中的状态。我像这样声明它们:namespace State { enum Value { MoveUp = 1 &lt;&lt; 0, // 00001 == 1 MoveDown = 1 &lt;&lt; 1, // 00010 ==...

13得票2回答
boost::dynamic_bitset比std::bitset慢,除非重置std::bitset。

我最近了解了bitset模板并想在我的当前项目中使用它们。继续阅读,我发现std :: bitset模板必须在编译时确定大小。许多人建议使用boost :: dynamic_bitset来缓解此要求。 为了比较这两个模板,我决定对设置,翻转和计数方法进行速度比较。 结果非常奇怪……我想知道...

9得票2回答
如何将C++位集中的一段位子集转换为数字?

我有一个 std::bitset,该类型还提供了一个 to_ulong 方法,以将位集转换为数字。我的问题在于只考虑位集中的某个范围而将位集翻译成一个数字,我需要实现自己的 powerof2 函数,或者是否有更标准的方法?

9得票1回答
使用带有std::bitset的枚举类

首先,我希望使用普通枚举而不是基于位的枚举,因为不同枚举的数量将超出任何整数类型。我还想利用C++11 enum class的类型安全性。为此,自然的选择应该是std::bitset,但我不知道如何将它们绑定在一起。 需要一个自定义的bitset吗?如何实现这样一个类?