19得票4回答
在C++中定义一个大的位集

在我的程序中,我需要检查是否已经在一个大小为 2.5*10^9 的集合中生成了某个值。我预计会生成大约一半的这个集合,并且需要一种快速的方式来检查和更新它。对我来说,位集似乎是一个不错的选择,因为它不需要太多的内存(每个值只需要 1 位)并且速度较快。但是问题在于,当我在类中定义我的集合时,由...

9得票3回答
如何将二进制字符串转换回字符

例子 注意:我只关心字母。所以bitset 000001会是a或A。 我有一个名为s的string,值为"abc"。 我取出string中的每个char,并通过使用bitset将其转换为二进制值。 例如 bitset <6> b1 = s[0]; //a bitset ...

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

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

10得票4回答
为什么BitSet不可迭代?

BitSet 类有一个 stream() 方法,但它不像其它实现了此方法的类型一样实现了 Iterable 接口。这样做是否有特定的原因?

38得票5回答
Python中与Java的BitSet相当的模块

是否有一个 Python 类或模块实现了类似于 BitSet 的结构?

7得票3回答
从字节中获取比特

我有以下函数: int GetGroup(unsigned bitResult, int iStartPos, int iNumOfBites) { return (bitResult >> (iStartPos + 1- iNumOfBites)) & ~(~0 &l...

29得票6回答
在C++中使用std::vector<bool>对象是否可接受,或者我应该使用其他替代方案?

我正在处理用户定义数量的位(我正在持有一个三维位数组,因此大小呈立方形增长 - 假设不少于512位),并且需要单独翻转它们。现在,仅在计算机上,我使用bool类型,因为内存不是问题。我计划将代码移动到微控制器中,因此处理能力和内存要求可能成为问题。但现在,我只想要速度。 然后我发现了C++ ...

8得票6回答
如何在位集中翻转位?

例如,我有一个整数 a = 10; 它的二进制表示(32位整数)是 00000000000000000000000000001010 反向后,变成 01010000000000000000000000000000 现在,我看到了这段代码,来自于这篇topcoder文章可以完成这...

8得票1回答
C++中将long转换为bitset构造函数的复杂度是多少?

我猜时间复杂度是O(n),其中n为位数。或者它与n无关吗?我的意思是,它不应该只是能够从内存中复制位吗?

11得票2回答
为什么C/C++中没有单比特数据类型?

对于bool来说,它只有true和false两个值,却有8位,为什么不把它设计成1位呢? 我知道有bitset,但是它并不是那么方便,我只是想知道为什么?