【发布时间】:2017-12-11 20:26:44
【问题描述】:
What does the ^ operator do in Java?下也问过类似问题
但我认为缺少一些东西。
当我们有一个例子时,根据@Carl Smotricz: “定义按位异或的一种简单方法是说结果在两个输入数字不同的每个地方都有一个 1。”
所以:
0101 ^ 0100 = 0001 (5 ^ 4 = 1)
这很清楚,但有什么用:
15^4 基于该逻辑: 1111 100
应该是 0111 但编译器给出:1011.
即使我们使用它也不起作用: 逻辑或:
假 ||假:假
假 ||真:真
真||假:真
真||真:真
【问题讨论】:
-
15^4 => 1111^0100 = 1011。您似乎将 4 等同于 100,与 1000 相同。这是不正确的,因为它会有前导 0,而不是尾随 0。 -
不要忘记前导零和 OR != XOR。