我需要对位数组运行按位操作(和、或、异或、移位、集合等)。到目前为止,我已经使用了128位类型,但现在我已经满足了使用更大数组的需要。经过一番搜索,我发现加速框架中的CFBitVector和vBigNum可以存储这么大的数据,但似乎它们没有我想要的操作。
有人能帮我解决这个问题吗?
使用的语言是Objective-C或C
谢谢你的支持
最佳答案
可以使用常规数组并将其解释为位数组。假设您使用一个字符数组,那么每个元素都有8位。如果要访问位231,可以在数组的231/8=28元素中找到它(该数组的231%8=7位)。这是很容易的,当你处理个别位。如果使用掩码和移位,就不那么容易了,但是可以编写一些函数来实现这一点。