java - ^= 在 Java 中是什么意思?

标签 java binary operators

我在HashMap.java中看到了如下代码。

    h ^= k.hashCode();
    // This function ensures that hashCodes that differ only by
    // constant multiples at each bit position have a bounded
    // number of collisions (approximately 8 at default load factor).
    h ^= (h >>> 20) ^ (h >>> 12);
    return h ^ (h >>> 7) ^ (h >>> 4);

一些随机输入产生类似于加法的输出,但以下代码导致 0

   int p = 10;
    p ^= 10;
    System.out.println("_______ " + p);

最佳答案

^= 运算符对左边的变量和操作数进行异或运算,然后将结果赋值给该变量。

与自身异或,结果为零。这是将寄存器设置为零的有效方法,因为它不会移动任何内存。

关于java - ^= 在 Java 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19339513/

相关文章:

java - URL 可通过浏览器访问,但 URLConnection 仍会出现 FileNotFoundException

c++ - 四向等价

c - 如何一次读取 14 位二进制文​​件而不是 8 位?

java - 如何创建具有最左边位数集的 x 位二进制数

c++ - 运算符是什么!!在字符串上做 C++

c++ - ostream& operator<< 没有 flush() 的段错误

java - 使用 @Configurable 的 Spring Autowiring

java - 将回车 <CR> 和 CTRL-Z 添加到 Java 中的字符串

java - Android Json 解析与 multipartEntity

c - 在 C 中将 int 写入二进制文件时出现问题