Đại số nhị phân
🎯 Mục tiêu bài học
Sau khi học xong chương này, sinh viên có thể:
- Thực hiện các phép toán số học cơ bản trong hệ nhị phân: cộng, trừ, nhân, chia.
- Hiểu và vận dụng đại số Boole để phân tích và thiết kế mạch logic.
- Biểu diễn và rút gọn các hàm logic bằng biểu thức Boole.
- Hiểu ý nghĩa và ứng dụng của phân rã Shannon trong thiết kế mạch.
- Biết cách biểu diễn số thực theo chuẩn IEEE 754.
2.1. PHÉP TOÁN SỐ HỌC TRONG HỆ NHỊ PHÂN
🔹 Cộng nhị phân
Quy tắc cộng hai bit:
| Bit A | Bit B | Tổng | Nhớ |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
🔸 Ví dụ:
1011
+ 0110
-------
10001
(Giống cộng tay, nhưng theo cơ số 2)
🔹 Trừ nhị phân
Quy tắc trừ hai bit (A – B):
| A | B | Hiệu | Mượn |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
🔸 Ví dụ:
1010
– 0011
-------
0111
Hoặc thực hiện phép trừ bằng cách cộng với số bù hai của số trừ.
🔹 Nhân nhị phân
Tương tự nhân tay thập phân, nhưng chỉ nhân với 0 hoặc 1.
🔸 Ví dụ:
1010
× 11
-------
1010 (1010 × 1)
1010 (dời trái 1 bit)
-------
11110
🔹 Chia nhị phân
Tương tự chia tay, sử dụng phép trừ lặp.
🔸 Ví dụ:
1101 ÷ 10 = 110 dư 1
→ 13 ÷ 2 = 6 dư 1
Ta chia giống như chia tay, nhưng tất cả thao tác là nhị phân.
________
10 | 1101
Chia như sau:
- Lấy 2 bit đầu của số bị chia:
11→ lớn hơn10→ chia được.11 ÷ 10(3 ÷ 2): được 1, dư 1- Viết
1vào thương. - Lấy phần dư
1nối với bit tiếp theo0→ thành10
10 ÷ 10= 1, dư 0- Viết tiếp
1vào thương - Nối phần dư (0) với bit tiếp theo (
1) →01
- Viết tiếp
01 ÷ 10→ không chia được → ghi0vào thương- Giữ lại
01làm dư
- Giữ lại
👉 Kết quả:
110 ← thương
10 | 1101
---
dư 1
✅ Vậy:
- Thương (quotient) =
110(tức là 6) - Dư (remainder) =
1
🧪 Kiểm tra lại:
6 × 2 = 12
12 + 1 = 13 ✅ Đúng rồi!
📌 Tổng quát:
- Khi chia nhị phân, thao tác giống chia tay nhưng ta dùng quy tắc logic nhị phân (chỉ có 0 và 1).
- Với mỗi bước, ta:
- So sánh phần chia với số chia.
- Nếu đủ lớn, ta trừ và ghi
1vào thương. - Nếu không đủ, ghi
0.
2.2. ĐẠI SỐ BOOLE
🔹 Định nghĩa
Đại số Boole là hệ thống toán học dùng để mô tả các giá trị logic: 0 (False) và 1 (True).
🔹 Các phép toán cơ bản:
| Phép toán | Ký hiệu | Diễn giải |
|---|---|---|
| NOT | A̅ | Phủ định A |
| AND | A·B | A và B |
| OR | A + B | A hoặc B |
🔹 Bảng sự thật (Truth Table)
| A | B | A AND B | A OR B | NOT A |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
2.3. HÀM BOOLE
Hàm Boole là hàm chỉ nhận đầu vào và đầu ra ở hai mức: 0 hoặc 1.
🔸 Ví dụ:
F(A, B, C) = A·B + A̅·C
🔹 Mục tiêu:
- Viết được biểu thức hàm logic từ bảng chân trị.
- Rút gọn biểu thức để thiết kế mạch tối ưu.
2.4. RÚT GỌN HÀM BOOLE – PHÂN RÃ SHANNON
🔹 Phân rã Shannon:
Cho phép biểu diễn hàm Boole theo biến điều kiện X:
F = X·F₁ + X̅·F₀
Trong đó:
F₁là hàm khi X = 1.F₀là hàm khi X = 0.
🔸 Ví dụ:
F(A, B) = A·B + A̅·B = B (rút gọn theo phân rã Shannon theo A)
Phân rã giúp chia để trị, dễ dàng tối ưu hóa thiết kế mạch tổ hợp.
2.5. CHUẨN IEEE 754 CHO SỐ THỰC
Chuẩn IEEE 754 được dùng để mã hóa số thực trong máy tính.
🔹 Cấu trúc của số thực 32-bit (single precision):
| Bit | Ý nghĩa |
|---|---|
| 1 | Dấu (Sign) |
| 8 | Số mũ (Exponent) |
| 23 | Phần trị (Mantissa) |
🔸 Ví dụ:
Biểu diễn số thực 5.75:
- Dạng nhị phân: 101.11
- Dạng chuẩn hóa: 1.0111 × 2²
→ S = 0, E = 127 + 2 = 129 = 10000001
→ M = 01110000000000000000000
→ Chuỗi IEEE 754: 0 10000001 01110000000000000000000
📚 GHI NHỚ NHANH
| Nội dung | Ghi nhớ |
|---|---|
| Cộng 1 + 1 | = 0, nhớ 1 |
| Trừ 0 – 1 | = 1, mượn 1 |
| Biểu thức Boole | Gồm các phép AND, OR, NOT |
| Phân rã Shannon | F = X·F₁ + X̅·F₀ |
| IEEE 754 (32-bit float) | 1 bit dấu – 8 bit số mũ – 23 bit trị số |
🧪 BÀI TẬP ÁP DỤNG
Bài 1:
Thực hiện các phép toán:
- a) 1101 + 1011
- b) 10100 – 1101
- c) 101 × 11
- d) 1110 ÷ 10
Bài 2:
Viết bảng chân trị và rút gọn các hàm sau:
- a) F(A, B) = A·B + A·B̅
- b) F(A, B, C) = A·C + A̅·B̅·C
Bài 3:
Áp dụng phân rã Shannon để rút gọn hàm:
F(A, B, C) = A·B + A̅·C
Bài 4:
Biểu diễn số thực –7.25 theo chuẩn IEEE 754 32-bit.
