简化按位操作

问题描述 投票:2回答:1

我有这样的if声明:

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

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

bit-manipulation bitwise-operators simplify
1个回答
2
投票

一个简短的等价表达式

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

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

© www.soinside.com 2019 - 2024. All rights reserved.