【问题标题】:How the ^ operator works in java? Supplemental^ 运算符如何在 java 中工作?补充
【发布时间】: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。

标签: java operators xor


【解决方案1】:

将位运算符应用于需要不同位数来表示的数字时,您需要添加前导零,以便它们“对齐”。

在您的 15 和 4 示例中:
15 确实是1111。 4 是100,您需要添加前导零以“填充”最多四位,即0100。现在,它们之间的异或应该在两个位不同的任何位置给出1 - 1011,这是您在尝试自己时观察到的结果。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2020-12-16
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多