Chương 1 Các vấn đề cơ bản của kỹ thuật số TS. ĐOÀN THỊ HƯƠNG GIANG 5 1. Các loại hệ thống số và mã chính 1. Các hệ số – Hệ cơ số 10 (Thập phân, Decimal system) – Hệ cơ số 2 (Nhị phân, Binary system) – Hệ cơ số 8 (Bát phân ,Octal system) – Hệ cơ số 16 (Thập lục phân, Hexadecimal system) 1.
Chuyển đổi qua lại giữa các hệ số 1. Chuyển đổi qua lại giữa các hệ TS. ĐOÀN THỊ HƯƠNG GIANG 6 3 19/05/2020 1. Các loại hệ thống số và mã chính 1.
Các hệ số – Hệ cơ số 10 (Thập phân, Decimal system) – Hệ cơ số 2 (Nhị phân, Binary system) – Hệ cơ số 8 (Bát phân, Octal system) – Hệ cơ số 16 (Thập lục phân, Hexadecimal system) 1. Chuyển đổi qua lại giữa các hệ số 1. Chuyển đổi qua lại giữa các hệ TS. ĐOÀN THỊ HƯƠNG GIANG 7 Các hệ số Hệ cơ số 10 (Thập phân, Decimal system) • Hệ thập phân là hệ thống số rất quen thuộc cấu tạo từ 10 số: 0, 1, 2, …, 9.
• Ví dụ số thập phân: N = 199810 = 1x103 + 9x102 + 9x101 + 8x100 = 1x1000 + 9x100 + 9x10 + 8x1 N = 3,1410 = 3x100 + 1x10-1 +4x10-2 = 3x1 + 1x1/10 + 4x1/100 TS. ĐOÀN THỊ HƯƠNG GIANG 8 4 19/05/2020 Các hệ số Hệ cơ số 2 (Nhị phân, Binary system) • Hệ nhị phân là một dãy số cấu tạo từ hai số mã S2 = {0, 1} • Mỗi số mã trong một số nhị phân được gọi là một bit (viết tắt của binary digit). • Số N trong hệ nhị phân: N = (anan-1an-2.a-m)2 (với ai∈ S2) Có giá trị là: N = an 2n + an-12n-1 + .+ a-m2-m Trong đó: an là bit có trọng số lớn nhất, được gọi là bit MSB (Most significant bit) a-m là bit có trọng số nhỏ nhất, gọi là bit LSB (Least significant bit) • Ví dụ: N = 1010,12 = 1x23 + 0x22 + 1x21 + 0x20 + 1x2-1 = 10,510 TS. ĐOÀN THỊ HƯƠNG GIANG 9 Các hệ số Hệ cơ số 8 (Bát phân, Octal system) • Hệ bát phân có tám số: S8 = {0,1, 2, 3, 4, 5, 6, 7}.
• Số N trong hệ bát phân: N = (anan-1an-2.a-m)8 (với ai ∈ S8) Có giá trị là: N = an 8n + an-18n-1 + an-28n-2 +. ĐOÀN THỊ HƯƠNG GIANG 10 5 19/05/2020 Các hệ số Hệ cơ số 16 (Thập lục phân, Hexadecimal system) • Hệ thập lục phân được dùng rất thuận tiện để con người giao tiếp với máy tính, hệ thập lục phân cấu tạo từ mười sáu số sau: S16 ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } (A tương đương với 1010 , B =1110 ,. • Số N trong hệ thập lục phân: N = (anan-1an-2.a-m)16 (với ai∈ S16) Có giá trị là: N = an 16n + an-116n-1 + an-216n-2 +.+ a-m16-m • Người ta thường dùng chữ H (hay h) sau con số để chỉ số thập lục phân. • Ví dụ: N = 20EA,8H = 20EA,816 = 2x163 + 0x162 + 14x161 + 10x160 + 8x16-1 = 4330,510 TS.
ĐOÀN THỊ HƯƠNG GIANG 11 1. Các loại hệ thống Số và Mã chính 1. Các hệ số – Hệ cơ số 10 (Thập phân, Decimal system) – Hệ cơ số 2 (Nhị phân, Binary system) – Hệ cơ số 8 (Bát phân ,Octal system) – Hệ cơ số 16 (Thập lục phân, Hexadecimal system) 1. Chuyển đổi qua lại giữa các hệ số 1.
Chuyển đổi qua lại giữa các hệ TS. ĐOÀN THỊ HƯƠNG GIANG 12 6 19/05/2020 Chuyển đổi qua lại giữa các hệ số Đổi một số từ hệ b sang hệ 10 • Để đổi một số từ hệ b sang hệ 10 ta triển khai trực tiếp đa thức của b • Một số N trong hệ b: N = (anan-1an-2.a-m)b với ai ∈ Sb • Có giá trị tương đương trong hệ 10 là: N = an bn + an-1bn-1 +.+ a-mb-m • Ví dụ: Đổi số 10110,112 sang hệ 10 4 3 2 1 0 -1 -2 10110,112 = 1x24 + 0 + 1x22 + 1x2 + 0 + 1x2-1 + 1x2-2 = 22,7510 Đổi số 4BE,ADH sang hệ 10 3 2 1 0 -1 -2 • 4BE,ADH=4x162+11x161+14x160+10x16-1+13x16-2 = 1214,67510 TS. ĐOÀN THỊ HƯƠNG GIANG 13 Chuyển đổi qua lại giữa các hệ số Đổi một số từ hệ 10 sang hệ b • Chuyển số N từ hệ 10 sang hệ b • Tổng quát, một số N cho ở hệ 10, viết sang hệ b có dạng: N = (anan-1 .a0)b = PE(N) là phần nguyên của N (0,a-1a-2 .a-m)b = PF(N) là phần lẻ của N Phần nguyên và phần lẻ được biến đổi theo hai cách khác nhau TS. ĐOÀN THỊ HƯƠNG GIANG 14 7 19/05/2020 • Phần nguyên: Chuyển đổi qua lại giữa các hệ số Giá trị của phần nguyên xác định nhờ triển khai: PN(N) = anbn + an-1bn-1 + .+ a1b 1+ a0b0 Lấy lũy thừa hoặc chia phần nguyên với b cho đến khi được số dư của phép chia cuối cùng không thể chia được, đó chính là số mã có trọng số lớn nhất (an) • Phần lẻ: Giá trị của phần lẻ xác định bởi: PL(N) = a-1 b-1 + a-2 b-2 +.+ a-mb-m Thực hiện phép nhân phần lẻ với b, sau mỗi lần nhân thì kết quả của phần nguyên của phép nhân chính là số mã có trọng số từ lớn nhất của phần lẻ cho đến khi kết quả có phần lẻ bằng không, ta sẽ tìm được dãy số (a-1a-2.
Chú ý: Phần lẻ của số N khi đổi sang hệ b có thể gồm vô số số hạng (do kết quả của phép nhân luôn khác 0), điều này có nghĩa là ta không tìm được một số trong hệ b có giá trị đúng bằng phần lẻ của số thập phân, vậy tùy theo yêu cầu về độ chính xác khi chuyển đổi mà người ta lấy một số số hạng nhất định. ĐOÀN THỊ HƯƠNG GIANG 15 Chuyển đổi qua lại giữa các hệ số Phần nguyên Cách 1: Số thập phân được trình bày dưới dạng tổng các lũy thừa của 2, sau đó ghi các kí số 0 và 1 vào vị trí bit tương ứng Cách 2: lặp lại phép chia cho 2 và ghi lại số dư sau mỗi lần chia cho đến khi thu được thương số bằng 0, và kết quả nhị phân hình thành bằng cách viết số dư đầu tiên là LSB và số dư cuối cùng là MSB. ĐOÀN THỊ HƯƠNG GIANG 16 8 19/05/2020 Ví dụ 3 2 1 0 Hệ 10: (1997)10= 1. ĐOÀN THỊ HƯƠNG GIANG 17 Chuyển đổi giữa các hệ đếm: Hệ thập phân → Nhị phân : Chia liên tiếp cho 2 và lấy ngược lại Hệ thập phân → Hexa : Chia liên tiếp cho 16 và lấy ngược lại Có thể dùng phương pháp tính nhẩm.
160 Ký hiệu hệ đếm: 923D → 39BH 2 1 0 Cách tính này làm sẽ lâu đối 39BH với những số lớn Cách tính này làm sẽ 12D → 0000 1100B nhanh đối với những số lớn TS. ĐOÀN THỊ HƯƠNG GIANG 18 9 19/05/2020 Chuyển đổi qua lại giữa các hệ số Ví dụ: Đổi 25,310 sang hệ nhị phân Lời giải: Phần nguyên: • 25 : 2 = 12 dư 1 ⇒ a0 = 1 • 12 : 2 = 6 dư 0 ⇒ a1 = 0 PN(N) = 110012 • 6:2=3 dư 0 ⇒ a2 = 0 • 3:2=1 dư 1 ⇒ a3 = 1 Thương số cuối cùng là 1 cũng chính là bit a 4: ⇒ a4 = 1 Phần lẻ: • 0,3 * 2 = 0,6 ⇒ a-1 = 0 • 0,6 * 2 = 1,2 ⇒ a-2 = 1 • 0,2 * 2 = 0,4 ⇒ a-3 = 0 • 0,4 * 2 = 0,8 ⇒ a-4 = 0 • 0,8 * 2 = 1,6 ⇒ a-5 = 1. PL(N) = 0,010012 Nhận thấy kết quả của các bài toán nhân luôn khác không, do phần lẻ của lần nhân cuối cùng là 0,6, đã lặp lại kết quả của lần nhân thứ nhất, như vậy bài toán không thể kết thúc với kết quả đúng bằng 0,3 của hệ 10. • Giả sử bài toán yêu cầu lấy 5 số lẻ thì ta có thể dừng ở đây: Kết quả cuối cùng là: 25,310 = 11001,010012 TS.
ĐOÀN THỊ HƯƠNG GIANG 19 Chuyển đổi qua lại giữa các hệ số Ví dụ: Đổi 1376,8510 sang hệ thập lục phân Lời giải: Phần nguyên: • 1376 : 16 = 86 số dư = 0 ⇒ a0 = 0 • 86 : 16 = 5 số dư = 6 ⇒ a1 = 6 & ⇒ a2 = 5 137610 = 560H Phần lẻ: • 0,85 * 16 = 13,6 ⇒ a-1 = 1310=DH • 0,6 * 16 = 9,6 ⇒ a -2 = 9 • 0,6 * 16 = 9,6 ⇒ a-3 = 9 • Nếu chỉ cần lấy 3 số lẻ: 0,8510= 0,D99H Và kết quả cuối cùng: • 1376,8510 = 560,D99H TS. ĐOÀN THỊ HƯƠNG GIANG 20 10 19/05/2020 Chuyển đổi qua lại giữa các hệ số • Ví dụ: Đổi số hệ 8(4708) thành số hệ 10 4758 = 4x(82) + 7x(81) + 5x(80) = 4x64 + 7x8 + 5x1 = 31710 Đổi số hệ 10 (36510) -> hệ 8 Chuyển từ hệ 10 (923)-> hệ 16 TS. ĐOÀN THỊ HƯƠNG GIANG 21 Chuyển đổi qua lại giữa các hệ số Đổi hệ b sang hệ bk và ngược lại • Viết đa thức của số N trong hệ b, nhóm thành từng k số hạng từ dấu phẩy về hai phía và đặt thành thừa số chung N = anbn +.+a-mb-m • Ví dụ: Với k = 3, N được viết lại bằng cách nhóm từng 3 số hạng, kể từ dấu phẩy về 2 phía. Phần chứa trong mỗi dấu ngoặc luôn luôn nhỏ hơn b3, vậy số này tạo nên một số trong hệ b3 và lúc đó được biểu diễn bởi ký hiệu tương ứng trong hệ này.
ĐOÀN THỊ HƯƠNG GIANG 22 11 19/05/2020 Chuyển đổi qua lại giữa các hệ số Ví dụ Đổi số N = 10111110101 , 011012 sang hệ 8 = 23 Lời giải: • N = 010 111 110 101 , 011 0102 2 7 6 5 3 2 • Ghi giá trị tương ứng của các số 3 bit, ta được số N trong hệ 8: N = 2 7 6 5 , 3 28 • Lưu ý: TS. ĐOÀN THỊ HƯƠNG GIANG 23 Chuyển đổi qua lại giữa các hệ số Ví dụ • Đổi số N trên sang hệ 16 = 24 Lời giải: Nhóm từng 4 số hạng • N = 0101 1111 0101 , 0110 10002 5 F 5 6 8 • N = 5 F 5 , 6 8 16 • Cách biến đổi ngược như sau: Thay mỗi số hạng của số trong hệ bk bằng một số gồm k số hạng trong hệ b. • Ví dụ để đổi số N = 5 F5, 6816 (hệ 24) sang hệ nhị phân (2) ta dùng 4 bit để viết cho mỗi số hạng của số này: N = 0101 1111 0101 , 0110 10002 TS.