JAvaロジックオペレータコードの例


public class BitOpt {

    public static void main(String[] args) {
        //int        4    32       
        //      32     ,          ,0       1        

        int m = 61;  //111101         
        //        :  32     0 ,  31                  0   31      
        // 0000000 00000000 00000000 00111101
        //     0    61         
        //00000000 00000000 00000000 00111101

        int n = -61;
        //        :  32     1 ,  31         ,  
        //1.           61           0   31   
        // 0000000 00000000 00000000 00111101
        //2.            , 0 1,1 0,  
        // 1111111 11111111 11111111 11000010
        //3.    2            (    )  1  
        // 1111111 11111111 11111111 11000011
        //     1    -61         
        //11111111 11111111 11111111 11000011
    }

}

public class BitOpt {

    public static void main(String[] args) {
        //     7 :& | ^ ~ << >> >>>
        //    ,     1  true,0  false  ,                 
        //^           0   1, 1-1 0-0  0,1-0 0-1  1
        int r = 0;
        int a = 61;  //00000000 00000000 00000000 00111101
        int b = -4;  //11111111 11111111 11111111 11111100

        r = a & b;
        //00000000 00000000 00000000 00111101 : 61 a
        //11111111 11111111 11111111 11111100 : -4 b
        //--------------------------------------------- &
        //00000000 00000000 00000000 00111100 : 60 r

        r = a | b;
        //00000000 00000000 00000000 00111101 : 61 a
        //11111111 11111111 11111111 11111100 : -4 b
        //--------------------------------------------- |
        //11111111 11111111 11111111 11111101 : -3 r

        r = a ^ b;
        //00000000 00000000 00000000 00111101 : 61 a
        //11111111 11111111 11111111 11111100 : -4 b
        //--------------------------------------------- ^
        //11111111 11111111 11111111 11000001 : -63 r

        r = ~a;
        //00000000 00000000 00000000 00111101 : 61 a
        //--------------------------------------------- ~
        //11111111 11111111 11111111 11000010 : -62 r
    }

}