12得票6回答
获取位集合中所有位的索引

我正在寻找一个快速的算法,可以给我一个BitSet对象中所有设置的位的索引。这太慢了:BitSet bitSet = ... Collection<Integer> indexes = new ArrayList<Integer>(bitSet.cardinality(...

10得票6回答
将字节数组转换为位集

我有一个由随机数生成器生成的字节数组,我想将其放入STL位集中。 不幸的是,Bitset只支持以下构造函数: 1. 一个由1和0组成的字符串,如“10101011”。 2. 一个无符号长整型。(我的字节数组会更长) 现在我能想到的唯一解决方案是逐位读取字节数组并制作一个由1和0组成的字符...

12得票3回答
Java BitSet 和 byte[] 的用法

我有一个应用程序,需要大量使用 BitSet 类,并逐位写入文件。我知道不能直接将位写入文件,因此首先将 BitSet 对象转换为字节数组并作为字节数组写入。但问题在于,由于 BitSet 类从右到左索引,当我将 BitSet 对象转换为字节数组并写入文件时,它会写反。 例如,这是我的 Bi...

7得票6回答
“Cannot appear in a constant expression”意为“不能出现在常量表达式中”,我需要将其变成一个变量,为什么它不让我这样做?

string convert_binary_to_hex(string binary_value, int number_of_bits) { bitset<number_of_bits> set(binary_value); ostringstream re...

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

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

8得票2回答
按位移动内存

如何实现一种最佳的位移动 memmove 方法?该方法需要额外提供目标和源位偏移量,且计数也应以位为单位。 我看到 ARM 提供了一个非标准的 _membitmove 方法,正好符合我的要求,但我找不到它的源代码。 Bind 的 bitset 包括 isc_bitstring_copy,但...

8得票5回答
使用位集作为键的地图存在问题

我正在尝试使用bitset作为键在C++中创建一个map。然而,编译器生成以下错误消息: In file included from /usr/include/c++/4.6/string:50:0, from /usr/include/c++/4.6/bi...

27得票7回答
在std::bitset中高效迭代true位的方法是什么?

有没有一种方法可以迭代(可能很大的)std::bitset,并且该迭代是 线性的,即与设置为true的位数成线性关系?我想避免必须检查位集中的每个位置。迭代应连续返回设置为true的每个位的索引。

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

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

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

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