美文网首页
按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总

按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总

作者: Ernest_Chou | 来源:发表于2016-06-09 01:25 被阅读0次

&&:

短路与(并且),两边都为真则为真,见false则false
如果第1个数为false,则发生短路(第2个数不走了)

||:

 短路或(或者),有一边为真则为真,见true则true
 如果第1个数为true,则发生短路(第2个数不走了)

! :

 逻辑非(取反),非真则假,非假则真

&按位与

& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。
注意 :&为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为false,程序也还是要继续执行去判断右侧的表达式值的真假。
    int i=2,j=4;
        System.out.println((++i==2)&(j++==4));//false
        System.out.println("i="+i+" ,j="+j);//3,5
        System.out.println(12&5);//与运算12=(1100)2  5=(0101) 1100+0101=0100 4
        System.out.println((2==2)&(4==4));//真真 true
        System.out.println((2==2)&(4!=4));//真假 false
        System.out.println((2!=2)&(4==4));//假真 false
        System.out.println((2!=2)&(4!=4));//假假 false

|按位或

(|)和(||)成立的条件是只要一侧表达式为真,结果就为真,在(|)运算时,无论左侧的表达式的值为真还是为假,都要判断右侧的表达式的值的真假,而(||)在运算时,只要左侧表达式的值为真,就不再判断右侧表达式的值了

相关文章

网友评论

      本文标题:按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总

      本文链接:https://www.haomeiwen.com/subject/lqvcdttx.html