Java运算符

算术运算符

总体原则是先乘除、再加减,括号优先

/

整型数据和变量之间进行除法运算时,无论能否整除,运算结果都是整数,会将小数部分直接截去

(没有四舍五入)。 除法运算中,包含浮点型数据,最后结果为小数形式。 支持正负数除法运算

%

支持浮点型数据取余      支持正负数取余运算

关于含0的算术运算:

0可做被除数。 当0做除数时,若被除数是整数,则会报错。

关于小数算术运算:

如果算术表达式中含有double型数据或变量,则运算结果为double型,否

运算结果为float型。(P34页PPT取大原则) 计算结果有时候会包含小数位,这些小数有时候并

准确,会与数学计算的结果存在误差,只能尽力接近数学运算中的结果。

自增自减

前缀++和前缀--: ++i和--i,先进行i+1或i-1,再使用i。 如:int  j, i=4;        j=++i;//i=i+1;j=i; 结果为:i=5;j=5

后缀++和后缀--: i++和i--,先使用i,再进行i+1或i-1。 如:int  j, i=4;        j=i++;//j=i;i=i+1; 结果为:i=5;j=4

关系运算符

关系运算符用来比较两个值,包括 >、 >= 、< 、<= 、== (等于) 、 != (不等于)

逻辑运算符

且、或、非(!)。且与或为二元运算符,逻辑非(!)为一元运算符。

Java对逻辑且和逻辑或提供短路和不短路的操作功能。 短路:进行计算时,先计算运算符左侧表达式的值,若使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。

逻辑运算符

短路

不短路

示例

实际运算

结果数据类型

&&

&

5<3&&4>3

5<3为假则后续表达式4>3跳过不运算

Boolean

||

|

5>3||4<3

5>3为真则后续表达式4<3跳过不运算

Boolean

位运算符

位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)、无符号右移(>>>)。操作时均转换为二进制补码(正数补码与原码一致,负数补码=负数反码+1)

按位与运算(&)

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。          

即:0&0=00&1=0,1&0=0,1&1=1 计算5&7,转换为二进制:即101 & 111=101 (十进制5)

按位或运算(|)  

参与运算的两个值,如果两个相应位都为0,则该位结果为0,否则为1。          

即:0|0=00|1=1,1|0=1,1|1=1

赋值运算符

按位异或运算(^)

参与运算的两个值,如果两个相应位相同,输出位为0,否则为1。        

        即:0^0=0,0^1=1,1^0=1,1^1=0 按位取反运算(~)

按位取反运算(~)

属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位取反生

与输入位的相反的值——若输入0,则输出1;输入1,则输出0。          

        即:~0=1,~1=0

左移位运算符(<<)    

运算符<<执行一个左移位。作左移位运算时,右边的空位补0。在不产生溢出的情况下,数据左移1位相当于乘以2。

右移位运算符(>>)      

运算符>>执行一个右移位(带符号),左边按符号位补0或1

无符号右移位运算符(>>>)

”>>>“运算符只用于整型,且只对int值或long值起作用,若用于short或byte值,则在进行“>>>”前

用符号扩展将其扩展为int型,然后再移位。运算符>>>执行一个右移位(无符号),只用0来填

左侧的空位。

正数: r = 20 >>> 2的结果与 r = 20 >> 2 相同;

负数: r = -20 >>> 2

       源码:10000000  00000000    00000000  00010100

       反码:11111111    11111111      11111111   11101011

       补码:11111111    11111111      11111111   11101100

补码右移:00111111    11111111     11111111    11111011

        结果:r = 1073741819

三目运算符

赋值运算符包括普通赋值运算符和扩展赋值运算符。

普通赋值运算符“=”的作用是将运算符右边表达式的值赋给左边的变量。

赋值运算符的结合性:自右向左。

 扩展赋值运算符的作用是先进行某种运算后,再对运算的结果进行赋值操作。

运算符优先级

大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运

算符、赋值运算符。 基本的优先级需要记住: 指针最优,单目运算优于双目运算。

优先级运算符结合律
1后缀运算符:[]    ()    ·    ->    ++    --(类型名称){列表}从左到右
2一元运算符:++    --    !    ~    +    -    *    &    sizeof_Alignof从右到左
3类型转换运算符:(类型名称)从右到左
4乘除法运算符:*    /    %从左到右
5加减法运算符:+    -从左到右
6移位运算符:<<    >>从左到右
7关系运算符:<<=    >>=从左到右
8相等运算符:==    !=从左到右
9位运算符 AND:&从左到右
10位运算符 XOR:^从左到右
11位运算符 OR:|从左到右
12逻辑运算符 AND:&&从左到右
13逻辑运算符 OR:||从左到右
14条件运算符:?:从右到左
15赋值运算符:
     =         +=        -=       *=       /=      %=       &=       ^=      |=   
   <<=      >>=
从右到左
16逗号运算符:,从左到右
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值