问题标签 [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.
cuda - 如何在 cuda 中创建大位数组?
我需要在我的算法中跟踪大约 10000 个数组元素。因此,为此我需要为每个记录使用布尔值。如果我使用 char 数组来跟踪 10000 个数组(如 0/1),它将占用很多记忆。
那么我可以在 Cuda 中创建一个 10000 位的位数组,其中每个位代表相应的数组记录吗?
c# - 将 C# 字节转换为 BitArray
是否有任何预定义的函数可用于将 a 转换byte
为BitArray
?
一种方法是检查byte
值的每一位,然后执行按位运算。我想知道是否有比这更直接的方法。
c++ - 用于搜索位数组以查找连续设置/清除位的快速代码?
是否有一些相当快的代码可以帮助我快速搜索大位图(几兆字节)以查找连续的零位或一位的运行?
我所说的“相当快”是指可以利用机器字长并一次比较整个字的东西,而不是进行非常慢的逐位分析(例如使用vector<bool>
)。
例如,在卷的位图中搜索可用空间(用于碎片整理等)非常有用。
java - 将字节或整数转换为位集
我有以下内容:
有什么非常简单的方法可以转换numBit
为位数组吗?或者更好的是,有没有办法绕过 int 的字节转换并直接从num
位数组?
谢谢
2d - 我如何在java中创建一个二维位数组,其中每个单元格中存储的数据在硬盘上的大小为1位?
我真正想要完成的是: 1)创建一个表或打包的二维位数组,2 列——行可以是任意长度。给出列名,以便我可以引用它们。3)然后我可以设置这个数组中的各个位 4)一旦将数据放入表中,我想将表对象写入文件。我不关心内存中表对象的大小,因为每个单元格中的数据在硬盘驱动器上占用 1 位。假设表对象的大小为 10 字节,我在表中存储了 16 位,所以当写入文件时,我总共得到 12 字节。
我是编程新手,所以如果我没有说清楚,请原谅我。我很欣赏你的知识。
python - 在Python中使用bitarray从文件中读取带有标题的二进制文件
我编写了一个程序,它使用 bitarray 0.8.0 将位写入二进制文件。我想在这个二进制文件中添加一个标题来描述文件里面的内容。
我的问题是我认为bitarray的“fromfile”方法必须从头开始读取文件。我可以做一个解决方法,以便读取程序获取标题,然后重写一个仅包含二进制部分的临时文件(bitarray tofile),但这听起来不太有效。
有没有办法正确地做到这一点?
我的文件可能如下所示,其中明文是标题,二进制数据是位数组信息:
...{(0, 0): '0'}{(0, 0): '0'}{(0, 0): '0'}�������������� ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ��������...
编辑:
阅读回复后,我尝试了以下操作:
长度为 0,“to01()”的打印为空。但是,标题的打印很好。
c++ - 如何获取文件的字节数?
我知道一个简单的问题,我想做的是能够获取文件的字节以用于将这些字节添加到位数组中,然后我可以使用它来写入名为bytes.exe
并启动它的文件。我知道如何在运行时读取现有文件的字节。但我不知道如何bitarray[]
在设计时将文件的字节复制并粘贴到我的文件中。
目标是能够在运行时写入bitarray[]
to myfile.exe
,然后启动所述文件。bitarray[]'s
基于许多不同的文件类型,我将使用很多,所以我正在寻找一种简单的方法。
是否应该使用某种反编译器?我只是查看了资源脚本,但我不想将任何依赖项附加到我的主 .exe。
low-level - 为什么大多数机器不能处理单个位?
我正在阅读有关位数组的信息,我想到了这个问题。为什么大多数机器不能处理单个位?是因为 DMA 还是因为为每个位保留地址太昂贵(内存/电路)?
c# - BitArray 线程安全
我正在寻找有关并发写入System.Collections.BitArray
类的线程安全性的信息。
具体来说,考虑以下人为设计的示例:
本能告诉我,如果两个线程尝试写入 bitarray 的相同底层整数值,并发解锁访问会产生不正确的结果,但我找不到任何证据支持它,而且我在运行时没有遇到任何问题。
这是一个安全的操作吗?
如果没有,为什么我没有看到此代码失败或产生不正确的输出?
更新
经过进一步的测试,我认为下面的测试证明了BitArray
在这个例子中使用 a不是线程安全的。
bool[]
另一方面,使用 a似乎是安全的。
正如我所提到的,我怀疑原因是数组中的 32 个值BitArray
共享相同的数组整数值。
这个逻辑正确吗?
为了提问,请假设除了代码中显示的线程之外没有线程正在访问该集合。
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 位机器的事实呢?