按位取反~
按位與& 有假則假 10-->0 00-->0
按位或 | 有真則真10-->1 11-->1
按位異或 異火通靈 11-->0 00-->0
位運(yùn)算效率最高的
左移<--- 右邊空出來的位置補(bǔ)0
a<<b
帶符號右移
a>>b--->
左邊空出來的位置 補(bǔ)齊原來的符號位
無符號右移
a>>>b--->左邊空出來的位置補(bǔ)0
最快的速度計算8*4=32
0000 1000 8
0010 0000 32
8<<2=32
System.out.println(8<<2);
技巧:
左乘右除
左移 右移
8<<2=8*2de2次方=32
8>>2=8/2de2次方=2
通過鍵盤輸入連個數(shù),然后顯示兩個數(shù)交換后的數(shù)據(jù):
方法一:
通過第三變量,交換兩個數(shù)
------------------------------
package zaizhu.da;
import java.util.Scanner;
public class jiaohuan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入第一個數(shù):");
int x=input.nextInt();
System.out.println("請輸入第二個數(shù):");
int y=input.nextInt();
int z=x;
x=y;
y=z;
System.out.println("x="+x+"\ty="+y);
}
}
方法二:公式法
x=(x+y)-(y=x);
------------------------------
package zaizhu.da;
import java.util.Scanner;
public class jiaohuan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入第一個數(shù):");
int x=input.nextInt();
System.out.println("請輸入第二個數(shù):");
int y=input.nextInt();
x=(x+y)-(y=x);
System.out.println("x="+x+"\ty="+y);
}
}
方法三:計算
------------------------------------
package zaizhu.da;
import java.util.Scanner;
public class jiaohuan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入第一個數(shù):");
int x=input.nextInt();
System.out.println("請輸入第二個數(shù):");
int y=input.nextInt();
x=x+y;
y=x-y;
x=x-y;
System.out.println("x="+x+"\ty="+y);
}
}
方法四:
-------------------------------------------------
package zaizhu.da;
import java.util.Scanner;
public class jiaohuan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("請輸入第一個數(shù):");
int x=input.nextInt();
System.out.println("請輸入第二個數(shù):");
int y=input.nextInt();
x=x^y;
y=x^y;
x=x^y;
System.out.println("x="+x+"\ty="+y);
}
}
--------------------------------------------------------