谁能简化这个按位表达式?

Dan*_*e36 -1 c++ bit-manipulation bitwise-operators

在 C++ 中开发 ECS 实现时,我渴望可以简化这个表达式,但老实说,我对按位运算没有足够的信心来弄清楚:

(x & y) == x
Run Code Online (Sandbox Code Playgroud)

如果您有任何关于简化按位表达式的提示,那就太好了,谢谢

编辑:格式化

Jak*_*ark 5

!(x & ~y)会给你同样的结果。然而,如果这是一个“简化”版本,我将其留给读者。如果您有一个不错的 C++ 编译器,请考虑不要在此类东西上浪费时间。无论如何,编译器都会找出最有效的机器代码。可读的代码应该是主要目标。

作为一个例子,在这里你可以看到一个众所周知的编译器(在本例中为 clang)将把 和 编译(x & y) == x!(x & ~y)相同的代码。