zoukankan      html  css  js  c++  java
  • java | (按位或) & (按位与) || (逻辑或) && (逻辑与) ^(异或) ⊙ (同或) 区别以及理解

    以下所有的举例都以十进制5 和 3  转成二进制如下 , 

    5 :0101

    3 :  0011

      按位或(|):

      按照位置同为假(0) 则是假(0) ;其中一个为真(1)则为真(1)。

      5 | 3 ==》0101 | 0011 ==》0111 ===》(十进制)7

     按位执行步骤:

         0 |  0= 0;  

         1 | 0 = 1;   

         0 | 1= 1;    

         1 | 1 = 1;        

    结果:0111

      按位与(&):

      按照位置 同为真(1)则是真(1);否则 一真一假 或者都为假 则是假(0); 

      5 | 3 ==》0101 | 0011 ==》0111 ===》(十进制)1

     按位执行步骤: 

           0  &  0= 0;   

         1 & 0= 0;    

         0 & 1= 0;    

         1 & 1= 1;        

    结果:0001

      

     同或 (⊙ ):

      5 ⊙  3:  按位操作,不相同则位真(1),相同则为假

      5 ⊙  3 ==》0101 ^ 0011 ==》0110 ===》(十进制)9

    按位执行步骤:

         0  ⊙   0= 1;   

         1  ⊙   0= 0;    

         0  ⊙ 1= 0;    

         1  ⊙ 1= 1 ;        

     结果:1001

     异或 (^):

      5 ^ 3:  按位操作,不相同则位真(1),相同则为假

      5 ^ 3 ==》0101 ^ 0011 ==》0110 ===》(十进制)6

    按位执行步骤:

         0  ^   0= 0;   

         1  ^  0= 1;    

         0  ^  1= 1;    

         1 ^  1= 0;        

     结果:0110

         

      逻辑或(||): 

      a|| b

     a 或 b 任何一个条件为真则为真,否则都为假

      if( a || b  ){

      return 1;     // 条件  1 : a=true , b=false;   2 : a=false, b=true;  3 : a=true,b=true; 

        }

      

      逻辑或(&&): 当第一个为 false 则第二个不用判断,当第一个为true 第二个还要判断

      a && b

     a 或 b 任何一个条件为真则为真,否则都为假

      if( a && b  ){

      return 1;     // 条件  1 : a=true, b=true;  

        }

  • 相关阅读:
    layui 3种导航栏
    SQL语句内做除法得出百分比
    JS 日期比较方法
    JDK 13 的 12 个新特性,真心涨姿势了
    怎么实现单点登录?面试必问!
    厉害了,Apache架构师们遵循的 30 条设计原则
    面试官问线程安全的List,看完再也不怕了!
    Java 类在 Tomcat 中是如何加载的?
    Redis 21问,你接得住不?
    String hashCode 这个数字,很多人不知道!
  • 原文地址:https://www.cnblogs.com/blogxiao/p/13729411.html
Copyright © 2011-2022 走看看