##位运算
1public class Test02{ 2 public static void main(String[] args){ 3 /** 4 位运算:& | ^ << >> >>> 5 6 byte b1 = 27;//0001,1011 7 byte b2 = 39;//0010,0111 8 //0000,0011 9 //同位比较,两者为1,则为1 10 System.out.println(b1 & b2);//3 - 0000,0000,0000,0000,0000,0000,0000,0011 11 12 byte b1 = 27;//0001,1011 13 byte b2 = 39;//0010,0111 14 //0011,1111 15 16 //同位比较,两者有1,则为1 17 System.out.println(b1 | b2);//63 - 0000,0000,0000,0000,0000,0000,0011,1111 18 19 byte b1 = 27;//0001,1011 20 byte b2 = 39;//0010,0111 21 //0011,1100 22 23 //同位比较,两者不同,则为1 24 System.out.println(b1 ^ b2);//60 - 0000,0000,0000,0000,0000,0000,0011,1100 25 26 & | ^ : 27 前后两侧为boolean,此符号为逻辑运算符 28 前后两侧为整数,此符号为位运算符 29 30 << 左移:整体向左移动n位,就用n个0补位 31 byte b = 27;//0001,1011 32 System.out.println(b << 2);//108 -- 0110,1100 33 34 >> 右移:整体向右移动n位,就用n个最高位补位 35 byte b = -27;//1110,0101 36 //1111,1001 37 System.out.println(b >> 2);//-7 -- 1111,1001 38 39 >>> 无符号位右移:整体向右移动n位,就用n个0补位 40 byte b = -27;//1110,0101 41 //0011,1111,1111,1111,1111,1111,1111,1001 42 System.out.println(b >>> 2);//1073741817 43 44 面试题一: 45 //-1 int(32位):1111,1111,1111,1111,1111,1111,1111,1111 46 // byte(8位):1111,1111 47 // char(16位):1111,1111,1111,1111 48 // int(32位):0000,0000,0000,0000,1111,1111,1111,1111 49 System.out.println((int)(char)(byte)-1); 50 51 面试题二:采用最有效率的方式计算4乘以4 52 //0001,0000 53 System.out.println(2<<3); 54 55 */ 56 57 58 59 60 } 61}