我有两个实例CFMutableBitVector
,如下所示:
CFBitVectorRef ref1, ref2;
我怎样才能对这些家伙进行按位操作?目前,我只关心and
,但显然xor
,or
等知道会很有用。
显然我可以遍历向量中的位,但是当我在位级别工作时这似乎很愚蠢。我觉得我缺少一些核心基础功能,但我找不到它们。
谢谢,
库尔特
我有两个实例CFMutableBitVector
,如下所示:
CFBitVectorRef ref1, ref2;
我怎样才能对这些家伙进行按位操作?目前,我只关心and
,但显然xor
,or
等知道会很有用。
显然我可以遍历向量中的位,但是当我在位级别工作时这似乎很愚蠢。我觉得我缺少一些核心基础功能,但我找不到它们。
谢谢,
库尔特
嗯一个
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