首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用大位掩码的便捷方法

使用大位掩码的便捷方法
EN

Stack Overflow用户
提问于 2011-09-13 09:54:24
回答 4查看 1.2K关注 0票数 3

我正在尝试在一个iOS应用程序中实现一个算法,它将使用较大的位掩码。每个位掩码的长度可达256位(32字节)。我需要在掩码中的任意位置快速获取/设置位,等等。

C或Objective-C有没有什么内置的语言特性可以让这类事情变得容易做,或者我是否应该编写自己的函数来操作任意字符数组中的位?我自己做似乎并不太难,但如果已经有一些东西可以高效、干净地做到这一点,我宁愿不写我自己的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-13 10:29:35

看看CFMutableBitVector,它就是为处理这类问题而设计的。

票数 3
EN

Stack Overflow用户

发布于 2011-09-13 10:27:39

您可以查看C++ STL中的std::位集。

票数 0
EN

Stack Overflow用户

发布于 2011-09-13 10:28:05

嗯,32字节并不是特别大。

您可以通过创建一个由8个掩码字节组成的数组,使用bit #的低3位对数组进行索引,并使用bit #的剩余5位来寻址包含这些位的字节数组来获取/设置位。

我不记得在标准C库中有和/或/xor字节串操作,但它并不是很难编写,例如,一个做andbytes(target, source, count)的函数,以便在你的位集之间进行操作。

您需要做的主要事情是弄清楚如何控制位数组的存储。如果它们固定在256位,那么最有意义的做法是将它们作为Objective-C对象,并使用包含这些位的char8数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7395998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档