Java运算符

1.算数运算符:

   加+ 减- 乘* 除 / 取余%  

2.自增、自减运算符

    ++X(--X)在使用之前先加(减)1

    X++(X--)在使用后加(减)

3.关系运算符

关系运算符用来比较两个值的关系,运算结果是boolean型,成立为ture,否则是false。都是从左到右。

           < 、>、=、!= 、 ><、>=、<=

4.逻辑运算符

          逻辑与&&、逻辑或||、逻辑非!

        其中&&、||为双目运算符;!为单目运算符。逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。

条件运算符:

5.赋值运算符

    =是双目运算符,左边的操作元必须是变量,不能是常量或表达式。结合从右到左

注:赋值运算符(=)与等号运算符(==)不一样

6.位运算符

按位与 &  :两者都要达到条件,双目运算符,结果精度以最高那个

按位或 | : 两者其中一个达到条件,结果精度以最高那个

按位非 ~ :取反,单目运算符

按位异或 ^,是双目运算符,参与运算的两个数对应的二进制位相异或,当对应的两个二进制位相异时,结果为1,否则结果为0;

7.instanceof运算符

该运算符为双目运算符,左边的操作元是一个对象,右边是一个类。左边的对象是右边类创建时,结果为true否则是false。

位运算符包括:按位与、按位或、按位异或、取反、右移和左移 ;

除‘~’取反外,其余皆为双目运算符,结合方向均为自左向右;

按位与,只有两个二进制位均为1时结果才为1,其余皆为0,按位与可以实现二进制序列指定为清0,(n)&(n-1),每次可以清0一次,即把一个1变为0,利用这个作用,可以简单实现判断一个数是不是2^n和计算一个数的二进制序列中有几个1;

按位或,参与运算的两个数各位相“或”,只要其中有一个二进制位值为1,结果就为1,如果要将一个数的某几位置1,只需要与这几位二进制序列是1的数进行或操作即可;

按位异或,,参与运算的两个数对应的二进制位相异或,当对应的两个二进制位相异时,结果为1,否则结果为0,一个整数与0异或会保留原值;

按位取反,在进行取反操作时不可简单的认为一个数取反后的结果就是该数的相反数; 整数在内存中存放的是其二进制补码,对其操作实际上是对二进制补码的运算,所以左移和右移的操作数必须是整型数据;

左移,其功能是把”<<”左边的运算数的各二进制位全部左移若干位,由”<<”右边的数指定其移动的位数,左移过程中高位丢弃,低位补0;

在移出位不含1的情况下,左移一位相当于该数乘2;

右移,右移运算符是双目运算符,作用是把”>>”左边的运算数的各二进制位全部右移若干位,由”<<”右边的数指定其移动的位数;

在进行右移时对于有符号数要注意符号位问题,当为正数时,最高位补0;

而为负数时,最高位补0还是补1取决于编译系统的决定,补0的称为“逻辑右移”,补1的称为“算术右移”,在我们计算时,一般采用逻辑右移,即高位补符号位, 移位操作效率比乘除高,所以如果可以用左移/右移来代替乘2.除2时优先选择左移/右移;

无符号值执行的所有移位都是操作都是“逻辑移位”。

你可能感兴趣的:(Java运算符)