enum { kWhite = 0,kBlue = 1 << 0,kRed = 1 << 1,kYellow = 1 << 2,kbrown = 1 << 3,};typedef char colorType;
我想要存储多个颜色在一个colorType我应该OR位一起?
colorType pinkcolor = kWhite | kRed;
但是假设我想检查pinkcolor是否包含kRed,我该怎么做呢?
任何人都关心使用提供的colorType示例给我一个例子?
解决方法 是,使用按位OR(|)设置多个标志:colorType pinkcolor = kWhite | kRed;
然后使用按位AND(&)来测试是否设置了标志:
if ( pinkcolor & kRed ){ // do something}
结果&只有在两个 *** 作数中设置相同的位时才设置任何位。由于kRed中的唯一位是位1,因此如果另一个 *** 作数没有设置该位,结果将为0。
如果需要获取某个特定标志是否设置为BOol而不是立即在if条件中测试,请将按位AND的结果与测试位进行比较:
BOol hasRed = ((pinkcolor & kRed) == kRed);总结
以上是内存溢出为你收集整理的objective-c – 如何使用带位标志的枚举全部内容,希望文章能够帮你解决objective-c – 如何使用带位标志的枚举所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)