java运算符

♦算数运算符。如:加(+)、减(-)、乘(*)、除(/)。

♦比较运算符。如:等于(==)、大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)。

♦布尔运算符。如:短路与(&&)、短路或(||)、非(!)、逻辑与(&)、逻辑或(|)、异或(^)。

♦赋值运算符。如:等于(=)、加等(+=)、减等(=)、乘等(*=)、除等(/=)、与等(&=)、或等(|=)、异或等(^=)。

♦位运算符。如:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>,>>>)。

//5换算成二进制: 0000 0000 0000 0000 0000 0000 0000 0101
//5右移3位后结果为0,0的二进制为: 0000 0000 0000 0000 0000 0000 0000 0000 // (用0进行补位)
//-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011
//-5右移3位后结果为-1,-1的二进制为: 1111 1111 1111 1111 1111 1111 1111 1111 // (用1进行补位)
//-5无符号右移3位后的结果 536870911 换算成二进制: 0001 1111 1111 1111 1111 1111 1111 1111 // (用0进行补位)
//通过其结果转换成二进制后,我们可以发现,正数右移,高位用0补,负数右移,高位用1补,当负数使用无符号右移时,用0进行部位(自然而然的,就由负数变成了正数了)

♦其他运算符。如:三目运算符(?:)、加加(++)、减减(--)。

  1 package com.jdk7.chapter1;
  2 
  3 public class Operator {
  4     /**
  5      * 算数运算符
  6      */
  7     public void computerOperator(){
  8         int a = 8;
  9         int b = 5;
 10         int result = a/b;        //除数和被除数都为int,运算的结果为int类型
 11         float f = a/b;            //除数和被除数都为int,运算的结果为int类型,将int类型结果转换为float类型
 12         double d = a/b;            //除数和被除数都为int,运算的结果为int类型,将int类型结果转换为double类型
 13         float f1 = a/(b*1.0f);    //被除数为float类型,运算结果为float类型
 14         double d1 = a/(b*1.0d);    //被除数为double类型,运算结果为double类型
 15         System.out.println("result = "+result+"; f = "+f+"; d = "+d+"; f1 = "+f1+"; d1 = "+d1);
 16     }
 17 /*
 18 执行结果:
 19 result = 1; f = 1.0; d = 1.0; f1 = 1.6; d1 = 1.6
 20 */
 21     /**
 22      * 比较运算符
 23      */
 24     public void compareOperator(){
 25         int a = 8;
 26         int b = 5;
 27         System.out.println("(a==b) = "+(a==b));
 28         System.out.println("(a>b) = "+(a>b));
 29         System.out.println("(a<b) = "+(a<b));
 30         System.out.println("(a>=b) = "+(a>=b));
 31         System.out.println("(a<=b) = "+(a<=b));
 32         System.out.println("(a!=b) = "+(a!=b));
 33     }
 34 /*
 35 执行结果:
 36 a、b、c至少一个为false
 37 (a==b) = false
 38 (a>b) = true
 39 (a<b) = false
 40 (a>=b) = true
 41 (a<=b) = false
 42 (a!=b) = true
 43 */
 44     /**
 45      * 布尔运算符
 46      */
 47     public void booleanOperator(){
 48         boolean a = true;
 49         boolean b = true;
 50         boolean c = false;
 51         if(a && b && c){
 52             System.out.println("a、b、c都为true");
 53         }else{
 54             System.out.println("a、b、c至少一个为false");
 55         }
 56         int i = 2;
 57         int j = 0;
 58         //从左到右,只要有一个为false则&&后面的都不会执行,(j = i) == 2不会执行
 59         if(c && (j = i) == 2){
 60             System.out.println("j = "+j);
 61         }else{
 62             System.out.println("j = "+j);
 63         }
 64         //从左到右,每一个都会执行,(j = i) == 2会执行
 65         if(c & (j = i) == 2){
 66             System.out.println("j = "+j);
 67         }else{
 68             System.out.println("j = "+j);
 69         }
 70         
 71         if(a || b ||c){
 72             System.out.println("a、b、c至少一个为true");
 73         }else{
 74             System.out.println("a、b、c都为false");
 75         }
 76         if(a ^ b){
 77             System.out.println("a、b值不同");
 78         }else{
 79             System.out.println("a、b值相同");
 80         }
 81         if(a & b){
 82             System.out.println("a、b都为true");
 83         }else{
 84             System.out.println("a、b至少一个为false,a、b都有调用执行");
 85         }
 86         if(a | b){
 87             System.out.println("a、b至少一个为true,a、b都有调用执行");
 88         }else{
 89             System.out.println("a、b都为false");
 90         }
 91         if(!a){
 92             System.out.println("(!a) = "+(!a));
 93         }
 94     }
 95 /*
 96 执行结果:
 97 a、b、c至少一个为false
 98 j = 0
 99 j = 2
100 a、b、c至少一个为true
101 a、b值相同
102 a、b都为true
103 a、b至少一个为true,a、b都有调用执行
104 */
105     /**
106      * 赋值运算
107      */
108     public void fuZhiOperator(){
109         int i = 4;
110         System.out.println("(i+=2) = "+(i+=2));
111         System.out.println("(i-=2) = "+(i-=2));
112         System.out.println("(i*=2) = "+(i*=2));
113         System.out.println("(i/=2) = "+(i/=2));
114         System.out.println("(i&=2) = "+(i&=2));
115         System.out.println("(i|=2) = "+(i|=2));
116         System.out.println("(i^=2) = "+(i^=2));
117     }
118 /*
119 执行结果:
120 (i+=2) = 6
121 (i-=2) = 4
122 (i*=2) = 8
123 (i/=2) = 4
124 (i&=2) = 0
125 (i|=2) = 2
126 (i^=2) = 0
127 */
128     /**
129      * 位运算
130      */
131     public void byteOperator(){
132         //5换算成二进制: 0000 0000 0000 0000 0000 0000 0000 0101
133         //5右移3位后结果为0,0的二进制为: 0000 0000 0000 0000 0000 0000 0000 0000        // (用0进行补位)
134         //-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011
135         //-5右移3位后结果为-1,-1的二进制为: 1111 1111 1111 1111 1111 1111 1111 1111   // (用1进行补位)
136         //-5无符号右移3位后的结果 536870911 换算成二进制: 0001 1111 1111 1111 1111 1111 1111 1111   // (用0进行补位)
137         //通过其结果转换成二进制后,我们可以发现,正数右移,高位用0补,负数右移,高位用1补,当负数使用无符号右移时,用0进行部位(自然而然的,就由负数变成了正数了)
138         
139         int a = 8;        //0000 0000 0000 0000 0000 0000 0000 1000
140         int b = 3;        //0000 0000 0000 0000 0000 0000 0000 0011
141         int c = -3;        //0000 0011->1111 1100->1111 1111 1111 1111 1111 1111 1111 1101
142         System.out.println("(a & b) = "+(a & b));    //0000 0000
143         System.out.println("(a | b) = "+(a | b));    //0000 1011
144         System.out.println("(a ^ b) = "+(a ^ b));    //0000 1011
145         System.out.println("(a << 2) = "+(a << 2));    //0010 0000
146         System.out.println("(a >> 2) = "+(a >> 2));    //0000 0010
147         System.out.println("(a >>>  2) = "+(a >>> 2));    //0000 0000 0000 0000 0000 0000 0000 0010
148         System.out.println("(c >>>  2) = "+(c >> 2));    //1111 1111 1111 1111 1111 1111 1111 1111->在计算机中表现为-1
149         System.out.println("(c >>>  2) = "+(c >>> 2));    //0011 1111 1111 1111 1111 1111 1111 1111
150         System.out.println("(~a) = "+(~a));        //1111 1111 1111 1111 1111 1111 1111 0111->-7在计算机中表现为补码-9
151     }
152 
153 /*
154 执行结果:
155 (a & b) = 0
156 (a | b) = 11
157 (a ^ b) = 11
158 (a << 2) = 32
159 (a >> 2) = 2
160 (a >>>  2) = 2
161 (c >>>  2) = -1
162 (c >>>  2) = 1073741823
163 (~a) = -9
164 */
165     public static void main(String[] args) {
166         Operator operator = new Operator();
167 //        operator.computerOperator();
168 //        operator.compareOperator();
169 //        operator.booleanOperator();
170 //        operator.fuZhiOperator();
171         operator.byteOperator();
172         
173     }
174 
175 }

 

posted @ 2018-01-07 17:56  celineluo  阅读(177)  评论(0编辑  收藏  举报