zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    laydate 显示结束时间不小于开始时间
    [Draft]iOS.ObjC.Pattern.Builder-Pattern
    [Draft]iOS.Architecture.16.Truth-information-flow-and-clear-responsibilities-immutability
    iOS.ObjC.__attribute__.1-all-_attribute_-directives
    Security.ssl-pinning
    iOS.mach_msg_trap()
    iOS.redefinition-of-struct-x
    Swift.Operator-and-Items-in-Swift(1)
    iOS.Animation.Math-behind-CATransform3D
    Security.website-that-focus-on-mobile-app-security
  • 原文地址:https://www.cnblogs.com/gavinYang/p/11196492.html
Copyright © 2011-2022 走看看