JAVA

Posted on 2018-06-27 16:25  渣渣的pp  阅读(349)  评论(0编辑  收藏  举报
 1 package com.pp.test;
 2 public class Demo2 {
 3 public static void main(String[] args) {
 4     
 5 //      运算符:
 6 //      a:按功能分:
 7 //     1.算术运算符 + - * / % ++ --
 8     System.out.println(-3/-2);//计算机中的除法跟普通的一致,切记整除相除为整数,小数相除为小数
 9     System.out.println(-3%2);
10     System.out.println(3%-2);//余数的符号跟被除数保持一致
11     int a= 2,b=3,c,d;
12     c = a++;
13     d = ++b;
14     //++在变量后面时,变量会先赋值再加一
15     //++在前面的时候,先加一再赋值
16     System.out.println(a+"  "+b+"  "+c+"   "+d);
17     
18 //     2.赋值运算符 = += -= *= /=
19      int w = 4,y = 4;//  = 右结合性,优先级最低
20      y += 3;//变量必须先赋值再使用
21      
22      //实例
23      int n=2,m=3,x,z=1;
24      x = n++ - --m +(z++ - n--);
25      System.out.println(x+" "+n+" "+m+" "+z);
26      /**
27       * 题目分析:先考虑优先级,再考虑结合性,先考虑优先级低的运算符,使用排除法
28       * 将符合条件的运算符找出来,再一步步进行运算
29       * 1.先考虑=号,使用排除法,根据右结合性,去算=右边的
30       * 2.判断-+好,优先级最低并且相同,是左结合性
31       * 3.先算n++ n=3 n++ = 2 
32       * 4.--m    m=2  --m =2
33       * 5.算()     (1 - 3)  z=2 n=2 
34       * 6.算-+号  2-2+(1-3) = -2
35       * 7 算=
36       * */
37      
38 //     3.关系运算符== < > <= >= !=  
39      //特点:true/false
40      
41 //     4.逻辑运算符&& || !
42      //特点:结果只有true/false,运算符的两边元素也只有true和false
43      //&&(与) 全真为真,一假为假
44      //||(或)一真为真,全假为假(类似于数学中的)
45      //由此可以发现,只需要判断出相应的真和假就能发生短路,是代码执行优化一些,不至于太过复杂
46      //注意事项(程序中断只适用于全&&  全||)
47      int q = 1;
48      @SuppressWarnings("unused")
49      boolean istrue = 2<3 && 3>4 && 2<3 || q++>3;
50      System.out.println(istrue +" "+q);
51 //     5.位运算符:(直接操作位)&(按位与 全1则1 有0则0) |(按位或 全0则0 有1则1) 
52 //    ^(按位异或    运算的当前位相同结果是0,不同结果为1)  
53 //    ~(按位取反    0就是1 1就是0) 
54      //为什么使用位运算符:
55      //电脑运行速度快,效率高,直接操作二进制
56       
57      
58      //交换两个数的值
59      /**
60       *
61       * 方法1:借助变量
62       * 
63       * 方法2.使用^运算符  好处:不需要中间的三方变量
64       * 
65       * */
66      int k1 = 3,k2=4,temp;
67      k1 = k1^k2;
68      k2 = k1^k2;
69      k1 = k1^k2;
70      System.out.println(k1+" "+k2);
71 //     6.移位运算符 >>1(右移一位) <<1(左移一位) >>>1(无符号右移一位)
72      //右移除以2  左移乘以2
73      System.out.println(5>>1);
74 //
75 }
76     
77 }