问题标签 [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.
php - 如何获取位数组中所有设置位的偏移量?
在 C、Ruby 或 PHP 中,如何获取位数组中所有设置位的偏移量。例如:
最明显的解决方案是首先做一个反向的 Find first set 以了解长度,然后遍历位,保存偏移量/索引。然而,这似乎不是很聪明。像 FFSR 这样多次减法可能会更好。
objective-c - 如何创建位数组目标 C
我想为数组中的项目创建一个位数组或位向量,以便我可以创建一个二进制指纹来与对象的指纹进行比较。
这是一个例子:
基本指纹......所有“可用”颜色
colorsArray[蓝、红、白、绿、橙];
把它变成一个二进制数组(或其他)
这是结果 = masterPrint[1,1,1,1,1];
现在我有一个单独的对象,其中包含红色和蓝色 (object[red,blue])
这个对象的指纹是对象的 print = [1,1,0,0,0];
比较两个打印,主打印[1,1,1,1,1]和对象打印[1,1,0,0,0];
结果是两场比赛 40%
我怎样才能做到这一点?谢谢
c - 使用位数组筛选 Eratosthenes
我有prime[]
一些unsigned int
. 我希望使用这个数组来实现一个埃拉托色尼筛,让每个位代表一个数字n
。也就是说,在给定的情况下n
,包含对应的位的数组元素n
将是prime[n/32]
,并且特定位将在位置n%32
。
testBitIs0(int n)
当数字为素数时(如果它的位 == 0), 我的函数返回 1,否则返回 0:
我的setBit(int n)
函数只是将相应位置的位设置为 1:
我遇到的问题是,当我setBit
使用多个素数调用时,我认为它设置的位不正确。下次运行此行时,当我setBit
使用质数的倍数(例如数字 2 的 4、6、8 等)调用时:
当i = 4/6/8/etc
它应该返回 0 时它仍然会返回 1。
有人可以检查我的代码以确保我正确地实现它吗?谢谢。
c# - 将 2 个数字组合成一个字节
我有两个数字(从 0 到 9),我想将它们组合成 1 个字节。数字 1 将占用位 0-3,数字 2 占用位 4-7。
示例:我有数字 3 和 4。3
= 0011 和 4 是 0100。
结果应该是 0011 0100。
如何用这些二进制值创建一个字节?
这是我目前拥有的:
使用此代码,我有 ArgumentOutOfBoundsExceptions
c# - C# 中的 BitArray 是否比使用按位移位的简单结合更快地获取位值?
1)。var bitValue = (byteValue & (1 << bitNumber)) != 0;
2)。使用方法System.Collections.BitArray
_Get(int index)
- 什么更快?
- 在 .NET 项目的哪些情况下,BitArray可能比与按位移位的简单结合更有用?
c - Eratosthenes 位阵列筛
我正在尝试使用带有位数组的 Eratosthenes 筛来查找素数,但我使用的是无符号整数数组。我需要能够生成多达 2,147,483,647 个素数。我的代码可以工作并且可以生成大约 10,000,000,但是当我增加数组的大小以容纳更大的数字时,它会失败。有人可以指导我如何将位向量与 c(不是 c++)一起使用。谢谢
这是我的代码:
android - 如何将android数据库中的照片保存为blob
我正在尝试将照片保存为 SQLite 中的 blob(不仅仅是引用它)。mCurrentMediaPath 是将存储照片的当前路径。现在,我需要在拍摄照片并按下保存按钮后将其保存到数据库中(我猜是在意图之后)。
我应该在哪里实现插入?
python - 使用位数组创建类似对象的列表
我需要在 Python 中跟踪一组可能有 1000 万个数字。(所有数字都在 0 到 2^32 之间)。我会事先知道整数的最大值,并且在 0 和最大值之间,20-80% 的值将在集合中。
我当前的代码使用内置的set
. 这种方式太慢了。就性能而言,最好的方法是使用 bitarray(例如https://pypi.python.org/pypi/bitarray/)。
我很容易使用 bitarray 来构建一个带有add(n)
和remove(n)
方法的类。我不知道该怎么做是支持for n in bitarray_set:
。我想我需要使用迭代器或可迭代的,但我不知道该怎么做。这可能吗?如何?
python - 将 numpy.bool 数组写入压缩文件?
我正在使用 numpy 和 Python 2.7 来计算超大质数筛的大型(1 亿+元素)布尔数组,并将它们写入二进制文件以供稍后读取。NumPy bools 是 8 位的,所以我写的文件大小比需要的大得多。由于我正在编写大量这些文件,因此我希望它们尽可能小,而不必浪费大量时间/内存将它们转换为位数组并返回。
我原本打算改用 bitarray 模块来减小文件大小,但是使用相同的算法,筛子计算时间增加了大约 400%,这有点不可接受。是否有一种快速的方法可以在较小的文件中写入和读取 ndarray,或者这是我必须处理的权衡?
c - 位数组的使用方法
我为类写了一些代码来查找素数。
老师说我需要按照以下要求修改我的代码:
- 使用位数组存储质数检查。位数组也将在堆中。
- 使用无符号 32 位整数 (UINT_MAX) 的最大值作为要检查的素数的最大大小。
我不想要一个完整的答案,因为这是我的作业。
但是,有人可以提供一些提示来帮助我入门吗?
我是 C 的新手,所以我很难弄清楚如何解决它。