JAVA_学习第二天[ 位异或运算符的特点]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA_学习第二天[ 位异或运算符的特点]相关的知识,希望对你有一定的参考价值。

  • "^" 位逻辑运算符

    class ysf {
       public static void main(String[] args) {
          System.out.println(5 ^ 10 ^ 10); 
          System.out.println(5 ^ 10 ^ 5);  
      // "^" 的特点:一个数据对另一个数据位异或两次,该数本身不变
       }
    }

  • 需要定义第三方变量


    class ysf {
       public static void main(String[] args) {
          int x = 10;
          int y = 5;
          int temp;
          temp = x;
          x = y;
          y = temp;
          System.out.println("x = " + x + " , y = " + y ); 
        //定义第三方变量,变量互换
       }
    }

 

  • 不需要第三方变量


    class ysf {
       public static void main(String[] args) {
          int x = 10;
          int y = 5;
          x = x + y;  //10 + 5 = 15
          y = x - y;   //15 - 5 = 10
          x = x - y;   //15 - 10 = 5
          System.out.println("x = " + x + " , y = " + y ); 
      //不需要定义第三方变量,有弊端,有可能会超出int的取值范围
       }
    }

  • 不需要定义第三方变量,通过 ^ 来做

 


    class ysf {
       public static void main(String[] args) {
          int x = 10;  
          int y = 5;  
          x = x ^ y;    //10 ^ 5
          y = x ^ y;    //10 ^ 5    y = 10
          x = x ^ y;    //10 ^ 5 ^ 10   x=5
          System.out.println("x = " + x + " , y = " + y ); 
      // 左边 x y x 右边都是 x ^ y
       }
    }

 











































以上是关于JAVA_学习第二天[ 位异或运算符的特点]的主要内容,如果未能解决你的问题,请参考以下文章

深入理解按位异或运算符

深入理解按位异或运算符

深入理解按位异或运算符

深入理解按位异或运算符

Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)

Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字