0

我有两个实例CFMutableBitVector,如下所示:

 CFBitVectorRef ref1, ref2;

我怎样才能对这些家伙进行按位操作?目前,我只关心and,但显然xor,or等知道会很有用。

显然我可以遍历向量中的位,但是当我在位级别工作时这似乎很愚蠢。我觉得我缺少一些核心基础功能,但我找不到它们。

谢谢,

库尔特

4

1 回答 1

0

嗯一个

CFBitVectorRef

是一个

typedef const struct __CFBitVector *CFBitVectorRef;

这是一个

struct __CFBitVector {
    CFRuntimeBase _base;
    CFIndex _count;         /* number of bits */
    CFIndex _capacity;  /* maximum number of bits */
    __CFBitVectorBucket *_buckets;
}; 

在哪里

/* The bucket type must be unsigned, at least one byte in size, and
   a power of 2 in number of bits; bits are numbered from 0 from left
   to right (bit 0 is the most significant) */

typedef uint8_t __CFBitVectorBucket;

所以你可以潜入一个可以加快速度的逐字节操作。当然,不可变可能会阻碍一些事情:D

于 2012-03-23T22:26:48.697 回答