Java-按位运算

时间:2021-04-12作者:klpeng分类:IT综合浏览:348评论:0

Java中的按位& , | , ^ ,>>,<<,~运算

按位运算都是通过转换成二进制进行的运算。

1.按位与(&) 

类似于C语言中的逻辑与,当前位是1则为真,0则为假。&类似为&&(逻辑与)。例如:a&b,必须要两个都是真才会返回1,否则返回0 。(0b表示为二进制)

0b1&0b0 = 0

0b1&0b1 = 1

0b0&0b0 = 0 

public class Main{

    public static void main(String[] args){

        System.out.println(9 & 8); //输出8
        /*
            9 ->二进制    1001
            8 ->二进制    1000
           10000&1000 =  1000  ->转换成10进制  ->  8

        */
    }

}

2.按位或( | )

类似于C语言中的逻辑或,当前位是1则为真,0则为假。例如:a|b,a,b中只要一个是真(是1)才会返回1,否则返回0 。(0b表示为二进制)

0b1 | 0b0 = 1

0b1 | 0b1 = 1

0b0 | 0b0 = 0 

public class Main{
       
        public static void main(String[]args){
            System.out.println(9 | 8); //输出9
             /*
            9 ->二进制    1001
            8 ->二进制    1000
           1001 |1000 =  1001  ->转换成10进制  ->  9

             */
            
        }


}

3.按位异或(^)

例如:位a和位b, 如果a、b两个不相同,异或后为1。如果a、b都是1或者都是0,异或结果为0。

0b1^0b1 =0

0b1^0b0 =1

0b0^0b0 =0

public class Main{
        public static void main(String []args){
            System.out.println(8^9); //输出1
            /*
            9 ->二进制    1001
            8 ->二进制    1000
           1001 ^1000 =  0001  ->转换成10进制  ->  
            */
        }

}

4.按位取反(~)

 

public class Main{
    public static void main(String []args){
        System.out.println(~9);  //输出为-10
        /*
        9  ->转换为二进制 0....1001  (32位) (....都是0)
        按位取反后        1....0110          (....都是1)
        变成了负数  ,在计算机为补码表示   转换为真值后为-10

        */
    }

}

5.左移

a<<2   二进制状态下的a整体向左移动2个位,缺的位补0   

public class Main{
        public static void main(String[]args){
            System.out.println(8<<3);   //输出为64
            /*
              8转换为二进制为   1000
                数向左移3位 1000000   在原来的位缺的加0
             
            */
        }


}

6.右移

a>>2 二进制状态下的a整体向右移动2个位

public class Main{
    public static void main(String[]args){
        System.out.println(8>>3); //输出为1
        /*
            8转换为二进制为   1000
             数向左移三位后      1      

        */
    }

}

 

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢