java笔记03 基础语法02 运算符

来源:互联网 发布:上海电力有限公司知乎 编辑:程序博客网 时间:2024/05/22 08:10


1.  运算符

Java运算符分为算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符。

 

2.  算术运算符

2.1 +(正号)、-(负号)

2.2 +、-、*、\、%、

运算与常规四则运算相同。

%:取模,表示求余数,5%2=1,6%2=0。负数对正数取模的结果是负数。

/:对于一个整形4567,4567/1000*1000=4000,而不是原数。

2.3 ++、--、

++:表示自增

-----:表示自减

注意:a=++a,会先自增在赋值。而a=a++,会先赋值,再自增。

2.4 +号还有连接字符串的功能。

“he”+”llo”=”hello”

System.out.println("5+5="+(5+5));//结果是:5+5=10

System.out.println("5+5="+5+5);//结果是:5+5=55

 

3.  赋值运算符

=、+=、-=、*=、%=

即常规运算并赋值。

注意:这些都是一次运算, s=s+1是两次运算。

 

4.  比较运算符

== 、 != 、>= 、<= 、> 、< 、instanceof

比较运算符的结果要么是true要么是false。

 

5.  逻辑运算符

&、!、|、^、&&、||

逻辑运算符用于连接布尔型表达式,规则如下:

&(与):有假则假

|(或):有真则真

^(异或):相异为真

&&(短路与):左边假,右边不判断

||(短路或):左边真,右边不判断

 

6.  位运算符

左移:<<         3<<2=3*2*2=3*4=12

右移:>>         3>>2=3/2=1

无符号右移:>>>  3>>>1=3/2=1

与运算:&        6&3=2

或运算:|        6|3=7

异或运算:       6^3=5 

反码:   ~       ~6=-7

 

6.1  负数等于取反+1,所以反码=负数-1;

6.2  正常右移是补符号位,正数右移会补0,负数右移会补1,这样会导致负数永远移不完,所以右移应该用无符号右移。

6.3  &运算可以用来获得对应的二进制位,例如&15,或者最后四位二进制位。好处在于对于负数也有效。

6.4  位运算方法:

在二进制中,1表示真,0表示假。

根据以上原则,可以将数值转换成二进制并使用逻辑运算符规则进行运算。

例如:6^3

       110

   ^011

------

    101

所以6^3的结果是5。

6.5 两次异或的结果等于本身,可以通过此方式来来进行加密。

 

练习1:对两个变量的数据进行互换。不需要第三方变量。

        int a = 3,b = 5;-->b = 3,a = 5;

        方法1:

            a = a + b; a = 8;

            b = a - b; b = 3;

            a = a - b; a = 5;

        //最好不要用,相加可能溢出

        方法2:用异或的方式

            a = a ^ b;

            b = a ^ b;//b = a ^ b ^ b = a

            a = a ^ b;//a = a ^ b ^ a = b;

练习2:高效的算出 2*8 = 2<<3;

 

7.  三元运算符

7.1 格式:条件表达式?表达式1:表达式2

根据条件表达式进行判断,true则执行表达式1,false则执行表达式2。

例如:

     int  a=3,b=5;

     int max=a>b?a:b;

     System.out.println(max);//输出5

0 0
原创粉丝点击