Giải Tin Học 10 trang 22
Lời giải chi tiết SGK Lớp 10 · Môn Tin Há»c · Trang 22–23
Nguon: Tin Hoc 10 - Ket Noi Tri Thuc Voi Cuoc Song (trang 22 – 23)
🔍 Kiến thức cần nhớ
1. Đổi thập phân → nhị phân: Chia liên tiếp số N cho 2, ghi lại các số dư. Đọc các số dư theo chiều từ dưới lên sẽ được số nhị phân cần tìm.
2. Đổi nhị phân → thập phân: Với số nhị phân dạng d_k d_(k-1) ... d_1 d_0, ta tính tổng:
d_k × 2^k + d_(k-1) × 2^(k-1) + ... + d_1 × 2^1 + d_0 × 2^0
3. Biểu diễn số nguyên trong máy tính:
- Số nguyên không dấu: đổi sang nhị phân rồi bổ sung các bit 0 bên trái cho đủ 8, 16... bit (1 byte = 8 bit).
- Số nguyên có dấu: dùng 1 bit ngoài cùng bên trái làm bit dấu (0 là dấu +, 1 là dấu −). Có 3 cách mã hóa: mã thuận (dấu – lượng), mã bù 1 (mã đảo), mã bù 2.
4. Bảng cộng và nhân trong hệ nhị phân (Bảng 4.1):
| x | y | x + y | x × y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 10 | 1 |
💡 Mẹo nhớ: Điểm khác biệt duy nhất so với thập phân là 1 + 1 = 10 (ghi 0, nhớ 1 sang hàng bên trái). Nếu cộng hai bit 1 mà còn nhớ 1 từ hàng trước thì kết quả là 11 (ghi 1, nhớ 1).
⚙️ Bài tập
Câu 1
Đề bài: Em hãy đổi các số sau từ hệ thập phân sang hệ nhị phân.
a) 13 b) 155 c) 76
Cách 1 — Chia liên tiếp cho 2 (phương pháp SGK)
a) 13:
| Phép chia | Thương | Số dư |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
Đọc số dư từ dưới lên: 13₁₀ = 1101₂
b) 155:
| Phép chia | Thương | Số dư |
|---|---|---|
| 155 ÷ 2 | 77 | 1 |
| 77 ÷ 2 | 38 | 1 |
| 38 ÷ 2 | 19 | 0 |
| 19 ÷ 2 | 9 | 1 |
| 9 ÷ 2 | 4 | 1 |
| 4 ÷ 2 | 2 | 0 |
| 2 ÷ 2 | 1 | 0 |
| 1 ÷ 2 | 0 | 1 |
Đọc số dư từ dưới lên: 155₁₀ = 10011011₂
c) 76:
| Phép chia | Thương | Số dư |
|---|---|---|
| 76 ÷ 2 | 38 | 0 |
| 38 ÷ 2 | 19 | 0 |
| 19 ÷ 2 | 9 | 1 |
| 9 ÷ 2 | 4 | 1 |
| 4 ÷ 2 | 2 | 0 |
| 2 ÷ 2 | 1 | 0 |
| 1 ÷ 2 | 0 | 1 |
Đọc số dư từ dưới lên: 76₁₀ = 1001100₂
Cách 2 — Phân tích thành tổng các lũy thừa của 2
Nhẩm nhanh các mốc: 2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16, 2^5=32, 2^6=64, 2^7=128.
- a) 13 = 8 + 4 + 1 = 2^3 + 2^2 + 2^0 → bit 1 tại vị trí 3, 2, 0 → 1101₂
- b) 155 = 128 + 16 + 8 + 2 + 1 = 2^7 + 2^4 + 2^3 + 2^1 + 2^0 → 10011011₂
- c) 76 = 64 + 8 + 4 = 2^6 + 2^3 + 2^2 → 1001100₂
⚠️ Lưu ý thi: Khi đọc số dư phải đọc từ dưới lên (số dư cuối cùng là bit cao nhất). Đọc ngược chiều là lỗi sai phổ biến nhất ở dạng bài này.
Câu 2
Đề bài: Em hãy đổi các số sau từ hệ nhị phân sang hệ thập phân.
a) 110011 b) 10011011 c) 1001110
Cách 1 — Khai triển theo lũy thừa của 2 (phương pháp SGK)
a) 110011₂:
| Bit | 1 | 1 | 0 | 0 | 1 | 1 |
|---|---|---|---|---|---|---|
| Lũy thừa | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| Giá trị | 32 | 16 | 0 | 0 | 2 | 1 |
= 32 + 16 + 0 + 0 + 2 + 1 = 51
Vậy 110011₂ = 51₁₀
b) 10011011₂:
| Bit | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
|---|---|---|---|---|---|---|---|---|
| Lũy thừa | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| Giá trị | 128 | 0 | 0 | 16 | 8 | 0 | 2 | 1 |
= 128 + 16 + 8 + 2 + 1 = 155
Vậy 10011011₂ = 155₁₀
c) 1001110₂:
| Bit | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| Lũy thừa | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| Giá trị | 64 | 0 | 0 | 8 | 4 | 2 | 0 |
= 64 + 8 + 4 + 2 = 78
Vậy 1001110₂ = 78₁₀
Cách 2 — Quy tắc Horner (nhân dồn nhanh)
Đi từ trái sang phải, mỗi bước lấy kết quả cũ nhân 2 rồi cộng bit kế tiếp.
a) 110011: 1 → 3 → 6 → 12 → 25 → 51
(1×2+1=3; 3×2+0=6; 6×2+0=12; 12×2+1=25; 25×2+1=51)
b) 10011011: 1 → 2 → 4 → 9 → 19 → 38 → 77 → 155
c) 1001110: 1 → 2 → 4 → 9 → 19 → 39 → 78
💡 Mẹo nhớ: Quy tắc Horner rất nhanh khi số có nhiều bit, chỉ cần lặp "× 2 + bit tiếp theo". Câu 1b và câu 2b chính là cặp số nghịch đảo của nhau (155 ↔ 10011011) — dùng để tự kiểm tra chéo kết quả.
Hoạt động 2 — Phép tính trong hệ nhị phân
Đề bài: Hãy chuyển các toán hạng của hai phép tính sau ra hệ nhị phân để chuẩn bị kiểm tra kết quả thực hiện các phép toán trong hệ nhị phân.
a) 26 + 27 = 53 b) 5 × 7 = 35
Cách 1 — Chuyển toán hạng rồi thực hiện phép tính nhị phân
a) 26 + 27 = 53
Chuyển các số sang nhị phân:
- 26 = 16 + 8 + 2 = 11010₂
- 27 = 16 + 8 + 2 + 1 = 11011₂
- 53 = 32 + 16 + 4 + 1 = 110101₂
Thực hiện phép cộng (từ phải sang trái):
1 1 0 1 0
+ 1 1 0 1 1
----------
1 1 0 1 0 1
Chi tiết từng cột (phải → trái):
- Cột 1: 0 + 1 = 1
- Cột 2: 1 + 1 = 10 → ghi 0, nhớ 1
- Cột 3: 0 + 0 + 1(nhớ) = 1
- Cột 4: 1 + 1 = 10 → ghi 0, nhớ 1
- Cột 5: 1 + 1 + 1(nhớ) = 11 → ghi 1, nhớ 1
- Còn nhớ 1 → ghi 1
Kết quả: 110101₂ = 53₁₀ ✓ Khớp với kết quả thập phân.
b) 5 × 7 = 35
Chuyển các số sang nhị phân:
- 5 = 4 + 1 = 101₂
- 7 = 4 + 2 + 1 = 111₂
- 35 = 32 + 2 + 1 = 100011₂
Thực hiện phép nhân (nhân từng bit của thừa số thứ hai, đặt kết quả căn phải theo đúng vị trí, rồi cộng lại):
1 0 1
× 1 1 1
---------
1 0 1 (101 × 1)
1 0 1 (101 × 1, dịch 1 vị trí)
1 0 1 (101 × 1, dịch 2 vị trí)
-----------
1 0 0 0 1 1
Cộng ba tích riêng: 101 + 1010 + 10100 = 100011₂ = 35₁₀ ✓ Khớp với kết quả thập phân.
Cách 2 — Kiểm tra nhanh bằng cách đổi ngược kết quả
Sau khi có kết quả nhị phân, đổi ngược về thập phân để đối chiếu:
- a) 110101₂ = 32 + 16 + 4 + 1 = 53 ✓
- b) 100011₂ = 32 + 2 + 1 = 35 ✓
Cả hai phép tính trong hệ nhị phân đều cho kết quả đúng như trong hệ thập phân, chứng tỏ phép cộng và phép nhân nhị phân được thực hiện hoàn toàn tương tự hệ thập phân.
⚠️ Lưu ý thi: Trong phép cộng nhị phân, dễ quên "nhớ 1" khi gặp 1 + 1 = 10 hoặc 1 + 1 + 1 = 11. Hãy ghi rõ số nhớ ở mỗi cột. Trong phép nhân, phải đặt các tích riêng căn phải đúng vị trí (dịch trái 1 hàng cho mỗi bit) giống như nhân thập phân.
🎯 Ghi nhớ: - Đổi thập phân → nhị phân: chia 2 lấy dư, đọc dư từ dưới lên. - Đổi nhị phân → thập phân: tính tổng các lũy thừa của 2 tại những vị trí có bit 1. - Phép cộng và phép nhân nhị phân làm giống hệ thập phân, chỉ khác quy tắc 1 + 1 = 10. - Luôn kiểm tra lại bằng cách đổi ngược kết quả về thập phân để tự đối chiếu.
