位运算(& | ^) 是怎么运算出得数的

在计算机里面,所有的数都是按照二进制存储,二进制中只有0和1,而位运算就是直接对二进制进行操作

先看一下位运算的01表格,在二进制中,就是按照这个表格中的结果进行计算

aba&b(与)a|b(或)a^b(异或)~a(非)
111100
010111
000011

我们有了上面的得数就可以很方便的进行计算

&运算

public class &运算{
    public static void main(String[] args){
/*
位运算是把运算二进制中对应的每一位!
     8——>1000   7->111         7——>111    6——>110
      1 0 0 0                      1 1 1
 &
        1 1 1                      1 1 0

得数    0 0 0 (十进制0)             1 1 0(十进制6)
*/
        System.out.println(Integer.toString(8,2));//1000
        System.out.println(Integer.toString(7,2));// 111
        System.out.println(8 & 7);//000(得数输出的是十进制0)

        System.out.println(Integer.toString(7,2));//111
        System.out.println(Integer.toString(6,2));//110
        System.out.println(7 & 6);//110(6)
    }
}


| 运算

public class &运算{
    public static void main(String[] args){
/*
位运算是把运算二进制中对应的每一位!
     8——>1000   7->0111         7——>0111    6——>0110
      1 0 0 0                      1 1 1
 |
        1 1 1                      1 1 0

得数  1 1 1 1 (十进制15)            1 1 1(十进制7)
*/
        System.out.println(Integer.toString(8,2));//1000
        System.out.println(Integer.toString(7,2));// 111
        System.out.println(8 & 7);//1111(得数输出的是十进制15)

        System.out.println(Integer.toString(7,2));//111
        System.out.println(Integer.toString(6,2));//110
        System.out.println(7 & 6);// 111(7)
    }
}

^ 异或

public class &运算{
    public static void main(String[] args){
/*
位运算是把运算二进制中对应的每一位!
     8——>1000   7->0111         7——>0111    6——>0110
      1 0 0 0                      1 1 1
 ^
        1 1 1                      1 1 0

得数  1 1 1 1 (十进制15)            0 0 1(十进制1)
*/
        System.out.println(Integer.toString(8,2));//1000
        System.out.println(Integer.toString(7,2));// 111
        System.out.println(8 & 7);//1111(得数输出的是十进制15)

        System.out.println(Integer.toString(7,2));//111
        System.out.println(Integer.toString(6,2));//110
        System.out.println(7 & 6);//001(1)
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值