Java的逻辑运算和位运算

    xiaoxiao2023-11-26  162

    Java的逻辑运算和位运算

    Java的逻辑运算

    1、逻辑运算符

    运算符

    用法

    含义

    &&

    op1&&op2

    逻辑与

    ||

    op1||op2

    逻辑或

    !op

    逻辑非

    op1

    Op2

    op1&&op2

    op1||op2

    !op1

    true

    True

    true

    true

    false

    True

    False

    false

    true

    false

    False

    True

    false

    true

    true

    False

    False

    false

    false

    true

     2、运算法则:

    只能对Boolean型数据进行运算 例如:

    int x=4; if(!x%2==0)

    运行的结果:

    3、特性:

    逻辑运算会短路

    例如

    int a=10,b=20;         if((a=0)==0||(b=0)==0)         {             System.out.println(b);         }

    运行的结果:

     Java的位运算

    1、位运算符

    a类

         “按位与”运算符“&”,规则:全1则1,否则为0

          “按位或”运算符“|”,规则:全0则0,否则为1。

          “按位非”运算符“~”,规则:遇1则0,遇0则1。

          “按位异或”运算符“^”,规则:相同为0,不同为1。

    b类

         >> 右移运算符:将二进制数据进行右移运算,左移之后的空位使用0来填充,例如 int 类型3和-3右移2位。

        << 左移运算符:将二进制数据进行左移运算,右移之后空出来的位置以符号位填充。如果是正数使用“0”填充,如果是负数使            用“1”填充,例如 int 类型3左移2位。

        >>> 无符号右移运算符:无论正负,空出来的位以“0”填充,例如int类型3和-2无符号右移2位。

    2、运算法则

    a.    |,&,可以对数值和布尔型进行运算

    b.    <<,>>,>>>(无符号右移)型

    例如:

        >> 右移运算符:将二进制数据进行右移运算,左移之后的空位使用0来填充,例如 int 类型3-3右移2位,如下图:

      >>> 无符号右移运算符:无论正负,空出来的位以“0”填充,例如int类型3-2无符号右移2位,如下图:

    3、特性

    a.位运算不会短路

    int a=10,b=20; if((a=0)==0|(b=0)==0) { System.out.println(b); }

    运行结果:

    b. 按异或两次,回到原值

    int a=3,b=5; a=a^b; b=a^b; a=a^b;

    运行的结果:


    若有缺陷或者错误,请不吝赐教。 

     

    最新回复(0)