1 class OperateDemo4 2 { 3 public static void main(String[] args) 4 { 5 /* 6 位运算符:用于操作二进制位的符号 7 左移:<< 乘以2的次幂运算(左移空位出现在低位,用0补就可以) 8 右移:>> 除以2次幂的运算(空位出现在高位,原来高位是什么,就用什么补位) 9 无符号右移:>>> 空位出现在高位,无论高位是什么,都用0补位 10 11 12 */ 13 14 15 System.out.println(3<<2); //3左移两位 先把3转换成二进制 16 /*00000000 00000000 00000000 00000011 -->3 17 00000000 00000000 00000000 00001100 -->12 18 左移操作可以方便进行x * 2次幂运算,只能对2的次幂进行次幂运算 19 20 21 3*4 内存运算过程 22 3转换二进制 011 23 4转换二进制 100 24 ----- 25 000 26 000 27 011 28 -------- 29 01100----->转换二进制为12 30 31 6>>1 32 00000000 00000000 00000000 00000110 33 00000000 00000000 00000000 0000011|0 34 000000000 00000000 00000000 0000011 --->转换二进制为3 35 右移可以方便进行除以2次幂的运算 36 37 */ 38 } 39 } 40 41 42 43 44 45 class OperateDemo4 46 { 47 public static void main(String[] args) 48 { 49 /* 50 位移运算符 51 & | ^ 52 53 */ 54 55 56 System.out.println(6&3); /* 57 6&3运算过程 58 00000000 00000000 00000000 00000110 59 & 00000000 00000000 00000000 00000011 60 ------------------------------------- 61 00000000 00000000 00000000 00000010 -----》2 62 & 用于取位数 >>> +& 用于取中间位数 63 64 6|3 65 110 66 | 011 67 ----- 68 111--->7 69 一个数异或另一个数两次结果还是这个数 用途:用于加密 70 6^3=5 71 110 72 ^011 73 ---- 74 101 --->5 75 ^011 76 ---- 77 110 ---->6 78 79 */ 80 81 } 82 }