简化按位操作

时间:2018-02-27 23:38:50

标签: bit-manipulation bitwise-operators simplify

我有if这样的声明:

if ((x & y) == y && (x & z) == 0) { /* do something... */}

是否可以简化此if语句,删除&&运算符并仅使用 按位运算符?

1 个答案:

答案 0 :(得分:2)

短等效表达式

(x & (y ^ z)) == y

通过查看单个位的所有8个结果可能最容易看到(这是足够的,因为每个位的结果独立于所有其他位)。