java - java中的 '^='运算符是什么

标签 java bitwise-xor

我的代码如下:

char ch = t.charAt(t.length() - 1);
        // result of XOR of two char is Integer.
        for(int i = 0; i < s.length(); i++){
            ch = ch^s.charAt(i);
            ch = ch^t.charAt(i);
        }

        return ch;

它抛出错误

Line 6: error: incompatible types: possible lossy conversion from int to char ch = ch^s.charAt(i);

Line 7: error: incompatible types: possible lossy conversion from int to char ch = ch^t.charAt(i);

2 errors

但是,当我改变

ch = ch^s.charAt(i);
ch = ch^t.charAt(i);

ch ^= s.charAt(i);
ch ^= t.charAt(i);

然后,我的代码就可以工作了。

“^=”和“* = ^”有不同吗?为什么我搜索这个关于“^=”的问题,它说它们是相同的?

What is the '^=' operator?

最佳答案

从功能上看,它们是相同的:都执行异或。

但是数据类型不同:

关于java - java中的 '^='运算符是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090710/

相关文章:

Java AES 加密整个字符串

Java RSA key 生成

python - 将 XOR 更改为 XNOR

algorithm - 有多少组 4 个数的异或等于 0?

java - Docker 和 Java - 字体配置问题

java - 字符串中 JSON 控制字符的转义

java - XOR 在 JAVA 中给出意外的输出

c - 如何检查 RFID 标签的校验和

c++ - 整数和位数组之间的按位运算

java - 如何在 Debug模式下运行配置单元