java-位运算符-交换两个变量的值的三种方法

    科技2025-06-16  10

    /* 运算符之五:位运算符: 结论: 1.位运算符作用的都是整形的数据 2.<<:在一定范围内,单位向左移一位,相当于*2(基于二进制的位数来平移)

    : 在一定范围内,单位向右移一位,相当于/2(右移会先判断是正数还是负数,正数用0补,负数用1补)

    面试题:最高效的方式计算2*8 ? 2<<3或者8<<1 */

    class BitTest{ public static void main(String[] args){ int i = 21; //i = -21; System.out.println("i << 2 :" + (i << 2)); System.out.println("i << 3 :" + (i << 3)); System.out.println("i << 27 :" + (i << 27)); int m = 12; int n = 5; System.out.println("m & n = " + (m & n)); System.out.println("m | n = " + (m | n)); System.out.println("m ^ n = " + (m ^ n)); //通过二进制底层的位运算来运算 //练习:交换两个变量的值 int num1 = 10; int num2 = 20; System.out.println("num1 = " + num1 + ",num2 = " + num2); //方法一: //int temp; //temp = num1; //num1 = num2; //num2 = temp; //方法二: //num1 = num1 + num2; //num2 = num1 - num2; //num1 = num1 - num2; //法三:异或,使用位运算符 num1 = num1 ^ num2; num2 = num1 ^ num2; num1 = num1 ^ num2; System.out.println("num1 = " + num1 + ",num2 = " + num2); } }
    Processed: 0.013, SQL: 8