Java的算数运算符、关系运算符、逻辑运算符、位运算符

算数运算符、关系运算符、逻辑运算符、位运算符
Java的运算符可分为4类:算术运算符、关系运算符(又名比较运算符)、逻辑运算符和位运算符。

一、算术运算符

1.算术运算符包括:加(+)、减(-)、乘(*)、除(/)、取余(%)、自加1(++)、 自减1(--)
2.除(/)、取余(%)和 自加1(++)、 自减1(--)的区别:


单独运算时: 无论是前"++“还是后”++“都不影响变量的变化,”–"同理;
混合运算时: 前"++“前自加"1"后使用(赋值),后”++“是先使用再自加"1”.
小试身手:

public class Test1 {
		public static void main(String[] args) {
			 int x = 4;
			 int y = (--x)+(x--)+(x*10);//3+3+20	x=2
			 System.out.println("x = " + x + ",y = " + y);
		}
	}

输出结果是: x=2 , y=26

二、关系运算符

1.关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。

三、逻辑运算符

1.逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
2. 真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。Java语言逻辑运算符的真值表如下:
逻辑运算符的真值表

3. “&”、"&&“和 “|”、”||“的运算注意: “&”、”|“没有短路问题而”&&"、"||"存在短路问题. “A&&B"运算时,当A为false时,B不会进行运算; “A||B"运算时,当A为true时,B不会进行运算.
tips: 在程序设计时使用”&&“或”||“而不要去使用”&“或”|”.

四、位运算符

1.位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
2.位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。
位运算示例
运算符 名称 示例 说明
& 位与 x&y 把x和y按位求与
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位异或 x^y 把x和y按位求异或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x< >>> 右移 x>>>y 把x的各位右移y位,左边填0
举例说明:

有如下程序段:
int x = 64; //x等于二进制数的01000000
int y = 70; //y等于二进制数的01000110
int z = x&y //z等于二进制数的01000000
即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。
右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:
int x = 70; //x等于二进制数的01000110
int y = 2;
int z = x>>y //z等于二进制数的00010001
即运算结果为z等于二进制数00010001,即z等于十进制数17。
对于如下程序段:
int x = -70; //x等于二进制数的11000110
int y = 2;
int z = x>>y //z等于二进制数的11101110
即运算结果为z等于二进制数11101110,即z等于十进制数-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。
0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。

五、运算符的优先级

以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左。

优先级 运算符                                         结合性 
1       .  []  ()  ;  , 
2       ++  ――  +=  !  ~  +(一元) -(一元)                     右左
3       *  /  %                                              左右
4       +(二元)  -(二元)                                      左右
5       <<  >>  >>>                                          左右
6       <  >  <=  >=  instanceof                             左右
7       = =  !=                                              左右
8       &                                                    左右
9       ^                                                    左右
10      |                                                    左右
11      &&                                                   左右
12      ||                                                   左右
13      ?:                                                  右左
14      =  *=  /=  %=  +=  -=  <<=  >>=  >>>=  &=  ^=  |=   右左

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值