问题标签 [bitarray]

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 投票
1 回答
2380 浏览

cuda - 如何在 cuda 中创建大位数组?

我需要在我的算法中跟踪大约 10000 个数组元素。因此,为此我需要为每个记录使用布尔值。如果我使用 char 数组来跟踪 10000 个数组(如 0/1),它将占用很多记忆。

那么我可以在 Cuda 中创建一个 10000 位的位数组,其中每个位代表相应的数组记录吗?

0 投票
4 回答
64513 浏览

c# - 将 C# 字节转换为 BitArray

是否有任何预定义的函数可用于将 a 转换byteBitArray

一种方法是检查byte值的每一位,然后执行按位运算。我想知道是否有比这更直接的方法。

0 投票
3 回答
1340 浏览

c++ - 用于搜索位数组以查找连续设置/清除位的快速代码?

是否有一些相当快的代码可以帮助我快速搜索大位图(几兆字节)以查找连续的零位或一位的运行?

我所说的“相当快”是指可以利用机器字长并一次比较整个字的东西,而不是进行非常慢的逐位分析(例如使用vector<bool>)。

例如,在卷的位图中搜索可用空间(用于碎片整理等)非常有用。

0 投票
5 回答
21319 浏览

java - 将字节或整数转换为位集

我有以下内容:

有什么非常简单的方法可以转换numBit为位数组吗?或者更好的是,有没有办法绕过 int 的字节转换并直接从num位数组?

谢谢

0 投票
2 回答
1728 浏览

2d - 我如何在java中创建一个二维位数组,其中每个单元格中存储的数据在硬盘上的大小为1位?

我真正想要完成的是: 1)创建一个表或打包的二维位数组,2 列——行可以是任意长度。给出列名,以便我可以引用它们。3)然后我可以设置这个数组中的各个位 4)一旦将数据放入表中,我想将表对象写入文件。我不关心内存中表对象的大小,因为每个单元格中的数据在硬盘驱动器上占用 1 位。假设表对象的大小为 10 字节,我在表中存储了 16 位,所以当写入文件时,我总共得到 12 字节。

我是编程新手,所以如果我没有说清楚,请原谅我。我很欣赏你的知识。

0 投票
1 回答
1509 浏览

python - 在Python中使用bitarray从文件中读取带有标题的二进制文件

我编写了一个程序,它使用 bitarray 0.8.0 将位写入二进制文件。我想在这个二进制文件中添加一个标题来描述文件里面的内容。

我的问题是我认为bitarray的“fromfile”方法必须从头开始读取文件。我可以做一个解决方法,以便读取程序获取标题,然后重写一个仅包含二进制部分的临时文件(bitarray tofile),但这听起来不太有效。

有没有办法正确地做到这一点?

我的文件可能如下所示,其中明文是标题,二进制数据是位数组信息:

...{(0, 0): '0'}{(0, 0): '0'}{(0, 0): '0'}�������������� ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ��������...

编辑:

阅读回复后,我尝试了以下操作:

长度为 0,“to01()”的打印为空。但是,标题的打印很好。

0 投票
2 回答
2540 浏览

c++ - 如何获取文件的字节数?

我知道一个简单的问题,我想做的是能够获取文件的字节以用于将这些字节添加到位数组中,然后我可以使用它来写入名为bytes.exe并启动它的文件。我知道如何在运行时读取现有文件的字节。但我不知道如何bitarray[]在设计时将文件的字节复制并粘贴到我的文件中。

目标是能够在运行时写入bitarray[]to myfile.exe,然后启动所述文件。bitarray[]'s基于许多不同的文件类型,我将使用很多,所以我正在寻找一种简单的方法。

是否应该使用某种反编译器?我只是查看了资源脚本,但我不想将任何依赖项附加到我的主 .exe。

0 投票
2 回答
51 浏览

low-level - 为什么大多数机器不能处理单个位?

我正在阅读有关位数组的信息,我想到了这个问题。为什么大多数机器不能处理单个位?是因为 DMA 还是因为为每个位保留地址太昂贵(内存/电路)?

0 投票
3 回答
1056 浏览

c# - BitArray 线程安全

我正在寻找有关并发写入System.Collections.BitArray类的线程安全性的信息。

具体来说,考虑以下人为设计的示例:

本能告诉我,如果两个线程尝试写入 bitarray 的相同底层整数值,并发解锁访问会产生不正确的结果,但我找不到任何证据支持它,而且我在运行时没有遇到任何问题。

这是一个安全的操作吗?

如果没有,为什么我没有看到此代码失败或产生不正确的输出?

更新

经过进一步的测试,我认为下面的测试证明了BitArray在这个例子中使用 a不是线程安全的。

bool[]另一方面,使用 a似乎是安全的。

正如我所提到的,我怀疑原因是数组中的 32 个值BitArray共享相同的数组整数值。

这个逻辑正确吗?

为了提问,请假设除了代码中显示的线程之外没有线程正在访问该集合。

0 投票
1 回答
795 浏览

python - bitarray.to01() 不只返回字符串中的 0 和 1(Python)

我使用该库bitarray来管理我的位转换并用 Python 编写二进制文件。写入文件之前的 bitarray.to01() 是 length 4807100171。出于某种原因,我无法理解,在从文件 ( b.fromfile(file)) 获取位然后用 转换为 0 和1 的字符串之后,to01()我的字符串 () 中不仅有 0 和 1,\x00然后,当我使用它时,我得到这个错误:

我想知道来自文件的字符串是否有大小限制或某些问题。如果是这样,我还没有找到任何关于它的东西......

编辑:

这是重现问题的一种方法:

** 编辑#2:

但是,如果我使用platform.architecture()and检查我的机器sys.maxint,我会得到:

所以,这大约是 2^63。为什么它会在 2^32 处截断?我有 4GB 的内存。我得到了 2^32*1.16415e-10*8 (因为我将它转换为字符串)~= 4GB ......但是这是一台 64 位机器的事实呢?