C ライクな言語で何度か遭遇した落とし穴は次のとおりです。
original | included & ~excluded // BAD
優先順位により、これは次のように解析されます。
original | (included & ~excluded) // '~excluded' has no effect
ビットごとの演算子の 3 つの個別の優先順位レベルの最初の設計上の決定の背後にあるものを知っている人はいますか? さらに重要なことは、あなたはその決定に同意しますか、そしてその理由は何ですか?