java中的(或运算,异或运算,与运算)解释下

Python039

java中的(或运算,异或运算,与运算)解释下,第1张

java中或运算、异或运算、与运算的使用实例和解释如下:

public class Test {    public static void main(String[] args) {        

// 1、左移( << )        

// 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:

//        // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20        System.out.println(5 << 2)// 运行结果是20         

// 2、右移( >> ) 高位补符号位        

// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:       

 // 0000 0000 0000 0000 0000 0000 0000 0001       

  System.out.println(5 >> 2)// 运行结果是1         

  // 3、无符号右移( >>> ) 高位补0        

  // 例如 -5换算成二进制后为:0101 取反加1为1011       

   // 1111 1111 1111 1111 1111 1111 1111 1011        /

   / 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:       

    System.out.println(5 >> 3)// 结果是0       

     System.out.println(-5 >> 3)// 结果是-1        

     System.out.println(-5 >>> 3)// 结果是536870911         

     // 4、位与( & )        

     // 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0        

     System.out.println(5 & 3)// 结果为1        

     System.out.println(4 & 1)// 结果为0         

     // 5、位或( | )        

     // 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0        

     System.out.println(5 | 3)// 结果为7         

     // 6、位异或( ^ )        

     // 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0         

     System.out.println(5 ^ 3)//结果为6         

      // 7、位非( ~ )        // 操作数的第n位为1,那么结果的第n位为0,反之。        System.out.println(~5)// 结果为-6     } }

区别一:定义不同:||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。区别二:与操作和或操作的区别(1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE(2)使用或操作,只要其中有一个表达式为TRUE,那么最终的结果就为TRUE,只有当所有的表达式为FALSE时最终结果才为FALSE区别三:实际含义不同:“||”: 如果左边计算后的操作数为true,右边则不再执行,返回true;“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。区别四:举例说明1、当使用|时,若前面的表达式为真时,程序会继续执行后面的表达式,然后在得出TRUE的结果,代码如下:结果如下:结果为真12、当使用||(短路或)时,若前面的表达式结果为真,则程序不会再执行后面的表达式,直接得出TRUE的结果,代码如下:结果如下:结果为假0