我正在尝试了解有关此内容的更多信息以在我的项目中实施。
我目前基本上得到了这个:
unsigned char flags = 0; //8 bits
flags |= 0x2; //apply random flag
if(flags & 0x2) {
printf("Opt 2 set");
}
现在我想做一些更复杂的事情,我想做的是应用三个这样的标志:
flags = (0x1 | 0x2 | 0x4);
然后删除标志0x1
并0x2
从中删除?我想我可以做这样的事情,应用按位非(和按位与应用它):
flags &= ~(0x1 | 0x2);
显然,当我检查时,它们仍然在那里或其他任何方式。
我也不知道如何检查它们是否不存在于位标志中(所以我无法检查我以前的代码是否有效),会是这样吗?
if(flags & ~0x2)
printf("flag 2 not set");
我从最近的搜索中找不到任何适用于此的资源,我愿意学习这个来教别人,我真的很感兴趣。如果这令人困惑或简单,我深表歉意。