bitarray相关内容

如何在 C++ 中存储位数组?

在 C++ 中存储位数组的最佳方式是什么(没有 Boost,只有标准容器),例如表示卷分配位图? 我认为 std::vector 是个好主意,但 显然它是邪恶的并且已被弃用,那么有更好的选择吗? 还有: 如果我在内存中有一个字节数组,我将如何将它们复制到推荐的容器中? (我无法为 vector 弄清楚这一点.) 解决方案 6 年后才发这个给后人: ..
发布时间:2022-01-24 21:11:35 C/C++开发

什么是复制未对齐位数组的高效算法?

过去我不得不这样做很多次,但我从未对结果感到满意. 谁能建议一种将连续位数组从源复制到目标的快速方法,其中源和目标可能未在方便的处理器边界上对齐(右移)? 如果源和目标都没有对齐,问题可以很快变成只有其中一个没有对齐的问题(在第一个副本之后). 作为一个起点,我的代码最终不可避免地看起来类似于以下内容(未经测试,忽略副作用,这只是一个即兴例子): const char mask ..
发布时间:2022-01-20 18:15:54 其他开发

从位数组转换为字节

我有一个 BitArray 长度为 8,我需要一个函数将其转换为 byte.怎么做? 具体来说,我需要一个正确的ConvertToByte函数: BitArray bit = new BitArray(new bool[]{假的,假的,假的,假的,假的,假,假,假,真});//如何写ConvertToByte字节 myByte = ConvertToByte(bit);var recove ..
发布时间:2022-01-09 19:08:58 C#/.NET

MongoDB 中的自动增量以存储唯一用户 ID 的序列

我正在制作一个分析系统,API 调用会提供一个唯一的用户 ID,但它没有顺序且太稀疏. 我需要为每个唯一用户 ID 提供一个自动增量 ID,以标记位数组/位集中的分析数据点.所以第一个用户遇到的将对应于位数组的第一位,第二个用户将是位数组中的第二位,以此类推. 那么有没有一种可靠且快速的方法可以在 MongoDB 中生成增量唯一用户 ID? 解决方案 可以,但不应该https: ..
发布时间:2021-11-30 20:38:01 其他开发

如何在 C 中定义和使用位数组?

我想创建一个非常大的数组,在上面写上“0"和“1".我试图模拟一个称为随机顺序吸附的物理过程,其中长度为 2 的单位,二聚体,在随机位置沉积到 n 维晶格上,彼此不重叠.当晶格上没有更多空间用于沉积更多二聚体(晶格被堵塞)时,该过程停止. 最初我从零点阵开始,二聚体由一对“1"表示.随着每个二聚体的沉积,二聚体左侧的位点被封闭,因为二聚体不能重叠.所以我通过在晶格上放置三重“1"来模拟这个过 ..

我可以将 BitArray 序列化为 XML 吗?

我有一个业务类,我需要将其序列化为 xml.它有一个 BitArray 属性. 我已经用 [XmlAttribute] 修饰了它,但是序列化失败了 要进行 XML 序列化,从 ICollection 继承的类型必须在其继承层次结构的所有级别都实现 Add(System.Boolean).System.Collections.BitArray 没有实现 Add(System.Boolea ..
发布时间:2021-10-02 18:53:50 C#/.NET

Python 位数组集

生成一组类似位数组的对象的最佳方法是什么,以便我可以有效地测试成员资格.天真的方式似乎并不像我期望的那样工作: >>>从位阵列导入位阵列>>>>>>bitarray_set = set([bitarray('0000'), bitarray('0001')])>>>bitarray_set设置([位数组('0001'),位数组('0000')])>>>>>>bitarray_set 中的 bit ..
发布时间:2021-07-23 19:19:24 Python

在 Rust 中使用位数组的正确方法是什么?

我需要一个类,其功能等同于 C++ 中的 vector.Rust 文档介绍了 BitVec,但 use std::collections::BitVec 在编译过程中导致 Unresolved import 错误.根据拉取请求,BitVec 已被删除.有没有合适的替代品? 解决方案 标准库中不存在专用的位向量,并且 Vec 不像 C++ 的 那样专门矢量.Rust 提倡使用外部 crate ..
发布时间:2021-07-13 20:40:45 其他开发

Python 有位域类型吗?

我需要一个布尔数组的紧凑表示,Python 是否具有内置位域类型,或者我是否需要找到替代解决方案? 解决方案 Bitarray 是我找到的最佳答案,当我最近有类似的需求时.它是一个 C 扩展(比纯 Python 的 BitVector 快得多)并将其数据存储在实际的位域中(因此它的内存效率是 numpy 布尔数组的八倍,后者似乎每个元素使用一个字节.) ..
发布时间:2021-06-25 19:27:36 Python

存储多个真假值列表的最佳方法

这只是为了解决好奇心 - 假设,在我的 C# 项目中,我有一个包含数百万个字符串的列表,每个字符串如下: "123Hi1234Howdy"“Hi1Howdy23".... 我需要知道的是,对于字符串中的每个字符,它是数字还是字母. 所以,我认为存储它的最简单方法是 0 和 1 或 True/False.因此,在上面的示例中,假设我可以分配 IsLetter = 1 和 IsDigit = ..
发布时间:2021-06-15 19:52:32 C#/.NET

python位数组(高性能)

我正在设计一个布隆过滤器,我想知道 Python 中性能最高的位数组实现是什么. Python 的好处是它可以开箱即用地处理任意长度的整数,这就是我现在使用的,但我对 Python 内部结构的了解不够,不知道这是否是在 Python 中执行此操作的最佳方法. 我发现了 bitarray 但它处理了很多其他事情,比如切片,我不知道不需要.我只需要 & 和 | 和 ..
发布时间:2021-06-15 19:05:51 Python

将(0/​​1)字符串加载到位数组中

将"10101011101010"之类的字符串直接加载到新的位数组中,最聪明的方法是什么?(不是字节数组) (这些位应保持与列表中相同的顺序.) 解决方案 您可以使用LINQ: var res = new BitArray(str.Select(c => c =='1').ToArray()); ..
发布时间:2021-04-18 20:06:26 C#/.NET

在一个字节中合并2个数字

我有两个数字(从0-9开始),我想将它们合并为1个字节.1号将占用0-3位,而2号将占用4-7位. 示例:我有3和4. 3 = 0011,而4为0100. 结果应为0011 0100. 如何用这些二进制值组成一个字节? 这是我目前拥有的: 公共字节CombinePinDigit(int DigitA,int DigitB){BitArray Digit1 =新的BitArr ..
发布时间:2021-04-15 19:49:56 C#/.NET

为BitArray生成良好的哈希码(GetHashCode)

我需要在GetHashCode中为BitArray生成快速哈希码.我有一本字典,其中的键是BitArrays,并且所有BitArrays的长度都相同. 在这种情况下,有人知道从可变数量的位生成良好哈希的快速方法吗? 更新: 我最初采用的方法是直接通过反射访问内部整数数组(在这种情况下,速度比封装更重要),然后对这些值进行XOR.XOR方法似乎很好用,即在字典中搜索时,我的'Equ ..
发布时间:2021-04-01 21:01:12 C#/.NET

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

我需要在算法中跟踪一个数组的大约10000个元素。为此,我需要为每个记录使用布尔值。如果我使用char数组来跟踪10000个数组(如0/1),则需要 那么我可以在Cuda中创建一个10000位的位数组,其中每一位代表对应的数组记录吗? >> , ..
发布时间:2020-10-13 01:28:50 其他开发