JavaSE basic grammar - bit computing

Bit computing

public class Test02{
    public static void main(String[] args){
        /**
            位运算:& | ^ << >> >>>
            
            byte b1 = 27;//0001,1011
            byte b2 = 39;//0010,0111
                         //0000,0011         
            //同位比较,两者为1,则为1 
            System.out.println(b1 & b2);//3 - 0000,0000,0000,0000,0000,0000,0000,0011
        
            byte b1 = 27;//0001,1011
            byte b2 = 39;//0010,0111
                         //0011,1111
                         
            //同位比较,两者有1,则为1 
            System.out.println(b1 | b2);//63 - 0000,0000,0000,0000,0000,0000,0011,1111
        
            byte b1 = 27;//0001,1011
            byte b2 = 39;//0010,0111
                         //0011,1100
                         
            //同位比较,两者不同,则为1 
            System.out.println(b1 ^ b2);//60 - 0000,0000,0000,0000,0000,0000,0011,1100
        
            & | ^ :
                前后两侧为boolean,此符号为逻辑运算符
                前后两侧为整数,此符号为位运算符
                    
            << 左移:整体向左移动n位,就用n个0补位
                byte b = 27;//0001,1011
                System.out.println(b << 2);//108 -- 0110,1100
                
            >> 右移:整体向右移动n位,就用n个最高位补位
                byte b = -27;//1110,0101
                         //1111,1001
                System.out.println(b >> 2);//-7 -- 1111,1001
                
            >>> 无符号位右移:整体向右移动n位,就用n个0补位
                byte b = -27;//1110,0101
                             //0011,1111,1111,1111,1111,1111,1111,1001
                System.out.println(b >>> 2);//1073741817
                
            面试题一:
                //-1 int(32位):1111,1111,1111,1111,1111,1111,1111,1111
                //   byte(8位):1111,1111
                //   char(16位):1111,1111,1111,1111
                //   int(32位):0000,0000,0000,0000,1111,1111,1111,1111
                System.out.println((int)(char)(byte)-1);
                
            面试题二:采用最有效率的方式计算4乘以4
                //0001,0000
                System.out.println(2<<3);
            
        */
            
        
            
                
    }
}

Guess you like

Origin www.cnblogs.com/cqzy/p/11200398.html