Java中按位取反的一些用法

详见以下代码

public class OperatorTest01 {
    public static void main(String[] args){
        /*
        按位取反 ~
        ~1 :0
        ~0 :1
         */
        int a = 10;

        /*
        取反
        11111111 11111111 11111111 11110101(补码)
        10000000 00000000 00000000 00001010(原码)
         */
        System.out.println(~a);//-11

        /*
        按位取反的具体应用:将某个二进制位清0
         */
        int value = 0b1111111111;//待清0的数据(将低位第4个清0)
        int flag = (1 << 3);

        // 11111111 11111111 11111111 11110111
        //&00000000 00000000 00000011 11111111
        //-------------------------------------
        // 00000000 00000000 00000011 11110111
        value = value & (~flag);//1015

        System.out.println(value);

    }
}
上一篇
下一篇