6
6
7
7
在学习二进制数的位运算之前,我们先来了解一下什么叫做「二进制数」。
8
8
9
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233101 .png )
9
+ ![ 二进制数 ] ( https://qcdn.itcharge.cn/images/202405132135165 .png )
10
10
11
11
> ** 二进制数(Binary)** :由 $0$ 和 $1$ 两个数码来表示的数。二进制数中每一个 $0$ 或每一个 $1$ 都称为一个「位(Bit)」。
12
12
29
29
30
30
同理,在二进制数中,$01101010_ {(2)}$ 可以看作为 $(0 \times 2^7) + (1 \times 2^6) + (1 \times 2^5) + (0 \times 2^4) + (1 \times 2^3) + (0 \times 2^2) + (1 \times 2^1) + (0 \times 2^0)$,即 $0 + 64 + 32 + 0 + 8 + 0 + 2 + 0 = 106_ {(10)}$。
31
31
32
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233152 .png )
32
+ ![ 二进制数转十进制数 ] ( https://qcdn.itcharge.cn/images/202405132136456 .png )
33
33
34
34
我们可以通过这样的方式,将一个二进制数转为十进制数。
35
35
@@ -82,7 +82,7 @@ $\begin{aligned} 106 \div 2 = 53 & \text{(余 0)} \cr 53 \div 2 = 26 & \text
82
82
83
83
举个例子,对二进制数 $01111100_ {(2)}$ 与 $00111110_ {(2)}$ 进行按位与运算,结果为 $00111100_ {(2)}$,如图所示:
84
84
85
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233202 .png )
85
+ ![ 按位与运算 ] ( https://qcdn.itcharge.cn/images/202405132137023 .png )
86
86
87
87
### 2.2 按位或运算
88
88
@@ -97,7 +97,7 @@ $\begin{aligned} 106 \div 2 = 53 & \text{(余 0)} \cr 53 \div 2 = 26 & \text
97
97
98
98
举个例子,对二进制数 $01001010_ {(2)}$ 与 $01011011_ {(2)}$ 进行按位或运算,结果为 $01011011_ {(2)}$,如图所示:
99
99
100
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233231 .png )
100
+ ![ 按位或运算 ] ( https://qcdn.itcharge.cn/images/202405132137593 .png )
101
101
102
102
### 2.3 按位异或运算
103
103
@@ -115,7 +115,7 @@ $\begin{aligned} 106 \div 2 = 53 & \text{(余 0)} \cr 53 \div 2 = 26 & \text
115
115
116
116
举个例子,对二进制数 $01001010_ {(2)}$ 与 $01000101_ {(2)}$ 进行按位异或运算,结果为 $00001111_ {(2)}$,如图所示:
117
117
118
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233240 .png )
118
+ ![ 按位异或运算 ] ( https://qcdn.itcharge.cn/images/202405132137874 .png )
119
119
120
120
### 2.4 取反运算
121
121
@@ -127,21 +127,21 @@ $\begin{aligned} 106 \div 2 = 53 & \text{(余 0)} \cr 53 \div 2 = 26 & \text
127
127
128
128
举个例子,对二进制数 $01101010_ {(2)}$ 进行取反运算,结果如图所示:
129
129
130
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233257 .png )
130
+ ![ 取反运算 ] ( https://qcdn.itcharge.cn/images/202405132138853 .png )
131
131
132
132
### 2.5 左移运算和右移运算
133
133
134
134
> ** 左移运算(SHL)** : 左移运算符为 ` << ` 。其功能是对一个二进制数的各个二进位全部左移若干位(高位丢弃,低位补 $0$)。
135
135
136
136
举个例子,对二进制数 $01101010_ {(2)}$ 进行左移 $1$ 位运算,结果为 $11010100_ {(2)}$,如图所示:
137
137
138
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233308 .png )
138
+ ![ 左移运算 ] ( https://qcdn.itcharge.cn/images/202405132138841 .png )
139
139
140
140
> ** 右移运算(SHR)** : 右移运算符为 ` >> ` 。其功能是对一个二进制数的各个二进位全部右移若干位(低位丢弃,高位补 $0$)。
141
141
142
142
举个例子,对二进制数 $01101010_ {(2)}$ 进行右移 $1$ 位运算,结果为 $00110101_ {(2)}$,如图所示:
143
143
144
- ![ ] ( https://qcdn.itcharge.cn/images/20230225233317 .png )
144
+ ![ 右移运算 ] ( https://qcdn.itcharge.cn/images/202405132138348 .png )
145
145
146
146
## 3. 位运算的应用
147
147
0 commit comments