您当前的位置: 首页 >  Java

liaowenxiong

暂无认证

  • 2浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java运算符详解

liaowenxiong 发布时间:2021-01-18 20:11:37 ,浏览量:2

文章目录
  • 自增自减运算符
  • 比较(关系)运算符
  • 三元运算符(三目表达式/三目运算)
  • 位运算符
    • 与(&)
    • 或(|)
    • 取反(~)
    • 异或(^)
    • 左移运算符()
    • 无符合右移运算符(>>>)

自增自减运算符

属于算术运算符、一元运算符

自增运算符:++ 自减运算符:–

使用格式:写在变量名称之前,或者写在变量名称之后 单独使用,前++与后++没有区别,前–与后–没有区别; 混合使用,则有重大区别: 1.如果是【前++】,那么变量【立刻+1】,然后拿着结果进行使用,先加后用 2.如果是【后++】,那么首先使用变量本来的数值,【然后再让变量+1】,先用后加 3.如果是【前–】,那么变量【立刻-1】,然后拿着结果进行使用,先减后用 4.如果是【后–】,那么首先使用变量本来的数值,【然后再让变量-1】,先用后减

例如:与打印操作混合使用

int num1 = 20;
System.out.println(++num1);//21
System.out.println(num1);//21

int num2 = 30;
System.out.println(num2++);//30
System.out.println(num2);//31
比较(关系)运算符

“==” , “!=” , “>” , “=” , “ b ? a : b;

2.要么打印输出 System.out.println(a > b ? a : b);

3.要么作为方法的返回值

return a > b ? a : b;

位运算符

与(&)、或(|)、异或(^)、取反(~)、左移()、无符号右移(>>>),位运算其实是针对二进制的运算。

几进制就是一个位上最多能表示几个数,如十进制的个位有0 - 9十个数字,八进制有0 -7八个数字,二进制我们自然想到就是0 - 1两个数字

我们编码中最小的单位是字节,一个字节有8位,每一位就是一个0或1,所以一个字节用二进制表示如下图: 在这里插入图片描述

与(&)

同为1则为1,否则为0。 都是1则得1,否则得0。 也可以这样理解: 与运算中,相同位之间其实就是两个Boolean的运算,1代表true,0代表false,“与”就是“且”的意思,所以都是true则是true,否则是false。

4&7,如何计算?

首先我们需要把两个十进制的数转换成二进制 4 : 0000 0100 7 : 0000 0111

在这里插入图片描述

或(|)

只要其中一个为1,则为1。 也可以这样理解: 1代表true,0代表false,既然是“或者”,那么只要其中一个是true,则为true,都是false,则为false。

5 | 9,如何计算?

先得到对应的二进制数: 5 : 0000 0101 9 : 0000 1001 在这里插入图片描述

取反(~)

将操作数的每位取反,就是把1变0,0变1

~15,如何计算

15的二进制:0000 1111

在这里插入图片描述

异或(^)

两位相同时返回0,不同时返回1。 也可以理解为:相同都是false,不同则是true。

7^15,如何计算

7: 0000 0111 15: 0000 1111

在这里插入图片描述

左移运算符()只对32位和64位有意义。

注意:移位运算遵循规则

  1. 低于Int类型(如byte、short、char)的操作数总是先自动类型转换为int类型后再移位。
  2. 对于Int类型的整数移位a>>b,当b≥32时,系统会用b对32求余(因为int类型只有32位),得到的结果才是真正移位的位数。例如,a>>33和a>>1的结果是完全一样的,而a>>32和a相同。
  3. 对于long类型的整数移位a>>b,当b≥64时,系统会用b对64求余(因为long类型是64位),得到的结果才是真正移位的位数。
  4. 进行移位运算不会改变操作数本身,只是得到了一个新的数值,而原来的操作数本身是不会改变的。

参考资料 点击查看运算符详解

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0473s