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 }