BitTest.java.bak 990 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. 运算符之五:位运算符(了解)
  3. 结论:
  4. 1、位运算操作的都是整型的数据
  5. 2、<<:在一定范围内,每向左移一位,相当于*2
  6. >>:在一定范围内,每向右移一位,相当于/2
  7. 面试题:最高效的方式计算2*8?2<<3或8<<1
  8. */
  9. class BitTest{
  10. public static void main(String[] args) {
  11. int i = 21;
  12. System.out.println("i << 2:" + (i << 2));//84
  13. System.out.println("i << 3:" + (i << 3));//168
  14. System.out.println("i << 26:" + (i << 26));//1409286144
  15. System.out.println("i << 27:" + (i << 27));//-1476395008
  16. int m = 12;
  17. int n = 5;
  18. System.out.println("m & n:" + (m&n));//4
  19. System.out.println("m | n:" + (m|n));//13
  20. System.out.println("m ^ n:" + (m^n));//9
  21. //练习:交换两个变量的值
  22. int num1 = 10;
  23. int num2 = 20;
  24. System.out.println("num1 = " + num1 +",num2="+num2);
  25. //方式一:定义临时变量的方式
  26. int temp = num1;
  27. num1 = num2;
  28. num2 = temp;
  29. //方式二:
  30. num1 = num1 + num2;
  31. num2 = num1 - num2;
  32. num1 = num1 - num2;
  33. System.out.println("num1 = " + num1 +",num2="+num2);
  34. }
  35. }