大位向量的按位运算
Posted
技术标签:
【中文标题】大位向量的按位运算【英文标题】:Bitwise operations on big bit-vectors 【发布时间】:2014-06-06 20:49:14 【问题描述】:我需要对位数组运行按位运算(和、或、异或、移位、集合等)。到目前为止,我已经使用 128 位类型来执行此操作,但现在我已经满足了使用更大数组的需要。经过一番搜索,我发现 Accelerate Framework 中的 CFBitVector 和 vBigNum 可以存储这么大的数字,但似乎它们没有我想要的操作。
谁能帮我解决这个问题?
使用的语言是 Objective-C 或 C
感谢您的支持
【问题讨论】:
【参考方案1】:您可以使用常规数组并将它们解释为位数组。假设您使用一个字符数组,所以每个元素都有 8 位。如果您想访问第 231 位,您会在数组的第 231/8=28 个元素中找到它(第 231%8=该数组的第 7 位)。当您处理单个位时,这很容易。如果你使用掩码和移位,这并不容易,但你可以编写一些函数来做到这一点。
【讨论】:
到目前为止,您的建议是我找到的最佳解决方案,mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/… 但是二进制函数需要按照您的说明编写。以上是关于大位向量的按位运算的主要内容,如果未能解决你的问题,请参考以下文章