运算符 ^ 对于参数类型是未定义的 long, boolean

The operator ^ is undefined for the argument type(s) long, boolean

当我对 Java 中的 long 数据类型执行 XOR (^) 操作时出现错误。

我不确定 Java 是否是这样工作的。

代码生成错误如下:

long a = 0, b = 0;
while (a < d) { // d is some value with datatype as long
    while (b < d) {
        if (a ^ b == c && a * b > max) { // error here (c is also some value with datatype as long)
            max = a * b;
        }
        b += 1;
    }
    a += 1;
}

您需要像下面这样使用括号:

if ((a ^ b) == c && a * b > max) { // error here (c is also some 
                                  // value with datatype as  long)
         max = a * b;
}

^ 的优先级低于 ==,因此编译器认为您正在尝试与布尔值进行异或运算。