Java运算符

南楼画角 提交于 2019-12-05 04:46:54

一、概述:

  Java的运算符,分为四类:

        算数运算符:+  -  *  /  %  ++  --

    关系运算符:==  !=  >  >=  <  <=

    逻辑运算符:&&  ||  !  ^  &  |

    位运算符:&  |  ~  ^  >>  <<  >>>

二、算数运算符

  +  -  *  /  %  ++  --分别是加减乘除、取余、自增、自减,这些都不必多说。需要特别说明的是%,各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。

  【取余】与【取模】的区别:取余运算向0 方向舍入,而取模运算向负无穷方向舍入;例如:-7%4

    取余:-7/4 = -1;-7%4 = -7-(-1*4) = -3

    取模:-7/4 = -2;-7%4 = -7-(-2*4) = -1

三、关系运算符

  

四、逻辑运算符

  &&  ||  ! 双与、双或、非三个都是很常用的,这里不细说,讲讲另外三个。

  1、&  |:这两个和&& ||作用一样,不同点在与不管运算符左边结果如何,仍会判断右边,所以无特殊需求不建议使用;

  2、^:这个符合叫做异或,相同为false,不同为true,例如:false^false=false

五、位运算符

  1、& | ~这三个实际上是二进制补码按位运算出【结果的补码】

    与&:A & B   -->  A的补码 & B的补码 = C(结果的补码)  -->  C的补码  =  结果        应用:将特定位,置为0

    或|:A | B   -->     A的补码 | B的补码   = C(结果的补码)  -->  C的补码  =  结果        应用:将特定位,置为1

    取反~:~A   -->        ~ A的补码            = C(结果的补码)  -->  C的补码  =  结果

  2、异或^:同0异1

    测试结果:不管是根据原码算还是补码算,结果都一致           应用:散列,其结果不偏向与1或0中的任何一个

  3、原码基础上进行左右移动            

    有符号右移>>:整体右移,左边补0后符号位补上原符号值

    无符号左移<<:整体右移,右边补零

    无符合右移>>>:整体左移,左边补零

    应用:高效的进行【2的冥次方】的乘除

  *、原码与补码

    a、原码:数字的二进制码

    b、正数的补码:原码本身

    c、负数的补码:原码除符号位,取反加一

    d、补码的补码等于原码

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!