问题标签 [bitset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3396 浏览

c++ - 位集二进制与运算

我写了以下几行:

我预计输出是:

但循环只输出'0000'。我缺少什么基本概念?

0 投票
1 回答
543 浏览

c++ - 实现对所有位的加法和访问的位集

这个问题与这个问题有关因为我正在寻找一种添加 bitset(-like) 结构的方法。我需要一个类似于 bitset 的东西,它可以存储至少 2400 位,并且可以(随机)访问所有这些。该课程必须具备的第二个重要能力是加法,我需要能够添加至少 1。由于可能的大小(大约为 2,96 x10),作为数字的表示不起作用(我猜) ^722 和不舒服的位访问。是否有任何已知的有效实现?

0 投票
2 回答
8220 浏览

algorithm - 如何实现位向量(bitset)(在Java中)?

是否有一些好的文本、书籍、pdf 或网站来解释如何实现位向量,尤其是在 Java 中?

我问这个问题是因为我想用 Java 制作自己的 BitSet 实现。原因是我想添加额外的功能和调整,如果我从 java.util 修改 BitSet Java 类则无法完成。此外,我想制作自己的实现,以便我可以在我的开源项目中使用它,而无需处理许可证。

谢谢!

0 投票
3 回答
1505 浏览

c++ - std::bitset 位序可移植吗?

C++ 对位排序有什么说法吗?我特别致力于协议数据包布局,我怀疑是否有一种可移植的方式来指定将某个数字写入位 5、6、7,其中位 5 是“最重要的”。

我的问题:

  • 0x01 是否总是表示为设置了第 7 位的字节?
  • 总是bitset<8>().set(7).to_ulong()等于 1?
0 投票
2 回答
358 浏览

c++ - 如何使用 bitset < > 计算位转换

我是 C++ 新手。我想以 9 位序列计算从 0 到 0、0 到 1、1 到 0 和 1 到 1 的转换次数。我编写了以下代码;

有人请指导我以下

  1. 如何保存循环 2 中的最后一位值以检查从最后一个 bitset 输出的最后一位到下一个 bitset 输出的第 1 位的转换?
  2. 如果这不起作用,我如何将它保存在向量中并使用迭代器来检查转换?
0 投票
3 回答
876 浏览

c++ - 具有非八位字节对齐子字段的 96 位长位字段

我需要一个 96 位长的结构,我可以将自定义位字段放入其中。字段的长度无处不在,8, 3, 26, 56。重要的是它们保持这些确切的长度(有一个例外,见下文)。

我看到了许多将数据连接成单个紧凑字段的方法:std::bitset, structs (连续保存字段),当然只使用ints。然而:

  • 这种bitset方法是有问题的,因为操作需要非常快地发生:bitset 没有提供一种方法来立即将 range 设置(x..y)为整个 range (0..96),使用一个原子操作。如果我要循环设置单个位,那该死的。

  • 由于对长度的限制,这种struct方法是有问题的。

  • int方法是有问题的,因为int64_t不够长。我当然可以int32_t在此旁边使用 an ,但是请参见下文。

一个显而易见的解决方案是将56 + 8字段放入int64_t中,将其余部分放入 中int32_t。这里的问题是56-long 字段是唯一一个实际上可能在以后的开发中减少的字段,这意味着我将在.int64_t32 - (26 + 3) = 3int32_t

有什么方法可以尽可能紧凑地存储这些(从代码的角度来看),同时仍然能够通过掩码访问广泛的区域(不像std::bitset)?

0 投票
5 回答
2259 浏览

c++ - 如何在 C++ 中将 bitset 转换为short?

如果我有一个bitset<16> bits(*iter)和一个我的短裤,我怎么能把这个 bist 分配给我的短裤?

可以将 bitset<16> 转换为 short 吗?

0 投票
1 回答
6231 浏览

c++ - C++:动态位集

我在初始化我的dynamic_bitset. 我有这个代码:

data1从文件中读取的 32 位二进制数在哪里。

当我输出 的值时data1[j],它会输出我需要分配给 x 的正确值,但是当我输出 x 时(在假定的初始化之后),x 都是 1。

我究竟做错了什么?

编辑:我正在尝试解压缩代码。压缩代码以 32 位长的行给出。我想把所有东西都放在一个结构中以便于访问。

我初始化x的代码:

EDIT2:
每行有 8 行 32 位。该for循环嵌套在一个while循环中,该循环访问这 8 行 32 位二进制文​​件中的每一行并将该值分配给 data1,因此 data1 会随着循环的每次迭代而变化while
第一次迭代:

第二次迭代:

第三次迭代:

ETC....

我想x成为一个包含所有这些值的长位集,这些值相互连接。

EDIT3:
尝试一种方法:

0 投票
1 回答
101 浏览

c++ - 将 bitset 成员函数 count 的输出放入向量中很慢

这是我遇到问题的 C++ 代码的一部分:

我的问题如下:

  1. 如果我评论第 1 行和第 2 行,则代码大约运行。109 毫秒;
  2. 如果我只评论 LINE2 代码运行大约。在 115 毫秒内;
  3. 如果我评论 LINE 1 并且 bit_count=0 代码运行大约 130 毫秒;
  4. 如果两行(第 1 行和第 2 行)均未注释,则代码大约运行。350 毫秒。

为什么我使用 LINE1 和 LINE2 时代码很慢?我找不到任何可以接受的解释。

请注意,我也尝试了 vec.push_back(bit_count),它也很慢。我也尝试了不同的演员操作,但没有成功。

0 投票
7 回答
1802 浏览

c++ - 我怎样才能在内存中恰好有 2 位?

我应该能够将一个值存储在一个可以从 0 到 3 的数据结构中。所以我需要 2 位。这个数据结构我会很大2^16个位置。所以,我想要 2 ^ 16 * 2(位)。在 C++ 中,您是否曾经在内存中恰好有 2 位?