Kar*_*los 1 c c++ bit-manipulation
在这里快速提问...
两者有什么区别...
if ((flags & bit1) == bit1) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
和...
if (flags & bit1) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
?
就这样。很确定以前已经回答过这个问题,但我一直找不到。
第一个检查是否flags已设置所有位(其中bit1也已设置)。第二个检查是否flags有任何(即至少一个)位组bit1也被设置(反之亦然;换句话说,是否存在任何公共设置位)。如果bit1设置了单个位,则“任何”和“全部”之间没有区别。