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 -->317 00000000 00000000 00000000 00001100 -->1218 左移操作可以方便进行x * 2次幂运算,只能对2的次幂进行次幂运算19 20 21 3*4 内存运算过程22 3转换二进制 01123 4转换二进制 10024 -----25 00026 00027 01128 --------29 01100----->转换二进制为1230 31 6>>132 00000000 00000000 00000000 0000011033 00000000 00000000 00000000 0000011|034 000000000 00000000 00000000 0000011 --->转换二进制为335 右移可以方便进行除以2次幂的运算36 37 */38 }39 }40 41 42 43 44 45 class OperateDemo446 {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 0000011059 & 00000000 00000000 00000000 0000001160 -------------------------------------61 00000000 00000000 00000000 00000010 -----》262 & 用于取位数 >>> +& 用于取中间位数63 64 6|365 11066 | 01167 -----68 111--->769 一个数异或另一个数两次结果还是这个数 用途:用于加密70 6^3=571 11072 ^01173 ----74 101 --->575 ^01176 ----77 110 ---->678 79 */80 81 }82 }