Java位运算

/*
    6的二进制:110
    11的二进制:1011
*/
//        与运算符: 相同位上都为1 则该位为1,否则0
        System.out.println(6 & 11);//等价于 0110 & 1011 = 0010 ; 0010 转二进制等于2
        
//        或运算符: 相同位上有一个位1则该位为1,否则0
        System.out.println(6 | 11);//等价于 0110 | 1011 = 1111 ; 1111 转二进制等于15
        
//        异或运算符:相同位上不同则该位为1, 否则0
        System.out.println(6 ^ 11);//等价于 0110 | 1011 = 1101 ; 1111 转二进制等于13
        
//        取反运算符:    位上是0则取1,是1则取0(按位取反的快捷运算公式 -(x+1))
        //6=00000000 00000000 00000000 00000110
        //取反后为 11111111 11111111 11111111 11111001
        //然后将二进制转为十进制数 -7
        System.out.println(~6);
        
//        左移运算符:就是把当前这个数的二进制数向左移动多少位(补零)
        //6=00000000 00000000 00000000 00000110=00000000 00000000 00000000 00110000
        System.out.println(6 << 3);
        
//        算术右移运算符:就是把当前这个数的二进制数向右移动多少位(正数左边补0,负数左边补1)        
        //-11 转正数二进制 00000000 00000000 00000000 000001011
        //取反 11111111 11111111 11111111 11110100  右移3位 11111111 11111111 11111111 11111110 
        // 然后负数二进制换算十进制
        System.out.println(-11 >> 3);
        
//        逻辑右移运算符:就是把当前这个数的二进制数向右移动多少位(正数负数均左边补0),对于正数和算术右移没区别
        //-11 转正数二进制 00000000 00000000 00000000 000001011
        //取反 11111111 11111111 11111111 11110100  右移3位,在最高位补3个0 00011111 11111111 11111111 11111110
        System.out.println(-11 >>> 3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值