Operator03.java.bak 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. class Operator03
  2. {
  3. public static void main(String[] args)
  4. {
  5. System.out.println("Hello World!");
  6. //左移
  7. System.out.println(3<<2); //12
  8. /*
  9. 3 0000 0011
  10. 0000 1100 = 10进制 12
  11. */
  12. System.out.println(-3<<2); //-12
  13. /*
  14. -3
  15. 1000 0011 源码
  16. 1111 1100 反码
  17. 1111 1101 补码 底层
  18. 1111 0100 补码 -1
  19. 1111 0011 反码
  20. 1000 1100 源码 // -12
  21. */
  22. //右移
  23. System.out.println(3>>2); // 0
  24. /*
  25. 0000 0011
  26. 0000 0000
  27. */
  28. //无符号右移
  29. System.out.println(8>>>2); // 2
  30. System.out.println(-8>>>2); // 1073741822
  31. System.out.println(-8>>2); // -2
  32. //按位与:&
  33. System.out.println(3&7); // 3
  34. /*
  35. 0000 0011
  36. 0000 0111
  37. 0000 0011
  38. */
  39. //按位或:|
  40. System.out.println(3|7); // 7
  41. /*
  42. 0000 0011
  43. 0000 0111
  44. 0000 0111
  45. */
  46. //亦或:^
  47. System.out.println(3^7); // 4
  48. /*
  49. 0000 0011
  50. 0000 0111
  51. 0000 0100
  52. */
  53. //取反 ~
  54. System.out.println(~3); // 4
  55. /*
  56. 0000 0011
  57. 1111 1100
  58. */
  59. //如何交换两个int型变量的值?String呢?
  60. int a = 10;
  61. int b = 20;
  62. //声明临时变量 临时 ***
  63. /*int temp = a;
  64. a = b;
  65. b = temp;
  66. System.out.println("a="+a);
  67. System.out.println("b="+b);
  68. //方案2 溢出问题 变成String
  69. int c = a+b;
  70. a = c- a ;
  71. b = c -a ;
  72. System.out.println("a="+a);
  73. System.out.println("b="+b);
  74. */
  75. //方案3 亦或 对象类型
  76. a = a ^ b ;
  77. b = a ^ b ;
  78. a = a ^ b ;
  79. System.out.println("a="+a);
  80. System.out.println("b="+b);
  81. }
  82. }