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      =  *=  /=  %=  +=  -=  <<=  >>=  >>>=  &=  ^=  |=   右左
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

Style_xing123

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者