# G3-17 课后练习 —— 位运算魔法
> **GESP等级：三级 | 考级考点：GESP Python 三级**

**姓名：__________  日期：__________**

---

## 基础巩固题

### 1. 概念填空

1. `&` 叫按位____，规则是：两个都是____结果才是1。
2. `|` 叫按位____，规则是：只要有____个是1结果就是1。
3. `^` 叫按位____，规则是：____才得1。
4. `~` 叫按位____，规则是：0变____，1变____。
5. `<<` 左移1位相当于乘以____，`>>` 右移1位相当于除以____。

### 2. 判断对错

(  ) `3 & 5` 的结果是 1（0011 & 0101 = 0001）
(  ) `3 | 5` 的结果是 7（0011 | 0101 = 0111）
(  ) `3 ^ 5` 的结果是 7
(  ) `~3` 在Python中的结果是 -4
(  ) `8 << 2` 的结果是 32（8×4=32）

### 3. 计算题

```
3 & 6    = ____    (011 & 110 = ____)
3 | 6    = ____    (011 | 110 = ____)
3 ^ 6    = ____    (011 ^ 110 = ____)
~5       = ____
4 << 3   = ____    (4 × 8 = ____)
16 >> 2  = ____    (16 ÷ 4 = ____)
```

---

## 进阶题

### 4. 位运算判断奇偶

```python
def is_odd(n):
    return ____ & ____

def is_even(n):
    return (____ & ____) == ____

print(is_odd(5))    # True
print(is_odd(10))   # False
print(is_even(8))   # True
```

### 5. 掩码操作

```python
def last_4_bits(n):
    掩码 = (1 << ____) - ____
    return n & ____
```

---

---

**自我评价：** □ 全都会了  □ 大部分会了  □ 还要再练练