我有游戏编程背景,我刚刚遇到了按位异或 ^。我已经看过它如何处理整数的示例,但我对 boolean 值的结果有点困惑。我知道 bool 要么是 0,要么是 1,但是经过测试,我无法用简单的运算符复制 ^ 结果。有人可以向我解释一下下面的代码片段(特别是^)在做什么吗?非常感谢。
bool body1awake = rigidbody1.isAwake;
bool body2awake = rigidbody2.isAwake;
if (body1awake ^ body2awake)
{
if (body1awake) rigidbody2.SetAwake();
else rigidbody1.SetAwake();
}
最佳答案
当仅设置其中一位时,两位异或为真。如果两者都设置或未设置则为 false。因为 bool
基本上代表一个位(0 或 1 是它唯一的值)
if (body1awake ^ body2awake)
表示当 body1awake != body2awake
时条件为 true。
关于c++ - 了解 boolean 变量的按位异或 (^),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60117888/