Hệ số Nguyễn Quốc Cường – 3I
Tài liệu tham khảo • Digital Design: Principles & Practices – John F Wakerly – Printice Hall
1
2
Giới thiệu • Hệ số làm việc với “0” và “1” • Thực tế cuộc sống lại sử dụng hệ 10 • Cần hiểu cách biểu diễn số thông qua hệ nhị phân
Cơ số • Ví dụ hệ ñếm thập phân 1234 = 1 x 1000 + 2 x 100 + 3 x 10 + 4 x 1 Trong dãy số mỗi chữ số của dãy số ñược ñánh trọng số tương ứng là lũy thừa của 10 135.68 = 1 x 100 + 2 x 10 + 5 x 1 + 6 x 0.1 + 8 x 0.01 Bằng việc sử dụng dấu phẩy cho phép sử dụng các trọng số là lũy thừa âm hoặc dương của 10 Tổng quát: một số D có dạng d1 d0 d-1 d-2 biểu diễn D = d1 x 101 + d1 x 100 + d-1 x 10-1 + d-2 x 10-2 10 ñược gọi là cơ số với các chữ số {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
3
4
• Tổng quát, với một số D có dạng dp-1dp-2...d0.d-1...d-n với cơ số r (r: nguyên, lớn hơn 1) có giá trị
Số bên trái ngoài cùng ñược gọi là số có trọng số lớn nhất (most significant digit)
5
Số bên phải ngoài cùng ñược gọi là số có trọng số nhỏ nhất (least significant digit)
Hệ nhị phân • Trong các hệ thống số, thường sử dụng chỉ hai số 0 và 1 ñể biểu diễn hệ nhị phân, các số ñược gọi là số nhị phân
Dấu phẩy trong hệ nhị phân ñược gọi là dấu phẩy nhị phân
6
• Các số trong hệ nhị phân ñược gọi là bit
7
– Số bên trái ngoài cùng trong hệ nhị phân ñược gọi là bit có trọng số lớn nhất (MSB: most significant bit) – Số bên phải ngoài cùng trong hệ nhị phân ñược gọi là bit có trọng số nhỏ nhất (LSB: least significant bit)
Hệ octave và hexa • Hệ thập phân quan trọng vì ñược sử dụng trong cuộc sống hàng ngày • Hệ nhị phân quan trọng vì sử dụng trong các hệ thống số • Tuy nhiên ñể thuận tiện cho việc viết văn bản, hệ octave và hệ hexa thường ñược sử dụng ñể biểu diễn các số trong hệ nhị phân: – octave sử dụng cơ số 8 – hexa sử dụng cơ số 16 8
nhị phân octave , hexa
9
10
octave , hexa nhị phân
Biến ñổi các hệ số • Với hệ ñếm cơ số r, ta có
R là cơ số p: số chữ số trước dấu phẩy n: số chữ số sau dấu phẩy
11
12
ðổi một số qua hệ 10
Tổng quát chúng ta có:
sai
ðổi số nguyên từ hệ 10
Nếu chia cho r ta ñược:
với số dư là d0 Nếu tiếp tục chia liên tiếp cho r ta sẽ ñược các số d1, d2, ...
13
14
Cộng và trừ các số nhị phân
15
16
Biểu diễn các số âm • Dấu và giá trị tuyệt ñối • Bù 2
17
18
Dấu và giá trị tuyệt ñối • Sử dụng bit MSB là bit dấu: – “1” là âm – “0” là dương
• Khi xây dựng các bộ cộng cần các thao tác
19
– kiểm tra dấu của hai số – nếu cùng dấu thì cộng giá trị tuyệt ñối, sau ñó gán trả lại bit dấu – nếu hai số khác dấu, cần so sánh hai số, lấy giá trị tuyệt ñối lớn trừ ñi giá trị tuyệt ñối nhỏ, bit dấu là bit của số có giá trị tuyệt ñối lớn hơn.
• Cần các phép “ifs”, “add”, “sub” và “compare” mạch phức tạp
20
Bù 2 • Với số B = bn-1...b0 trong mã bù 2: – MSB có trọng số là -(2n-1) thay vì là (2n-1) – Biểu diễn số trong khoảng -(2n-1) ñến (2n-1-1)
21
22
Cộng nhị phân trong mã bù 2
23
Phép tính luôn ñúng nếu kết quả không vượt quá phạm vi biểu diễn số của hệ thống
Tràn số
tràn số chỉ xảy ra khi : hai toán hạng cùng dấu và dấu của kết quả lại khác dấu với hai toán hạng 24
Trừ nhị phân • Sử dụng mã bù 2
lấy ñảo bit của số trừ và cộng thêm 1
Nhân số nhị phân không dấu
25
• Số nhị phân chỉ bao gồm số 0 và 1 do ñó có thể sử dụng phép dịch số nhân
26
ðể thuận tiện sử dụng tích thành phần cộng lần lượt với các sô nhân ñã ñược dịch
27
Theo thói quen dịch số bị nhân qua trái, tuy nhiên thực tế thuật toán nhân thường dịch tích thành phần qua phải rồi cộng với số bị nhân, các bit dịch qua phải là các bit có trọng số thấp.
• Nhân một số n bits với một số m bits, kết quả tối ña chứa trong (n+m) bits • Cần m phép tính shift-and-add • Có thể xây dựng bộ nhân bằng phần cứng sử dụng: – Bộ dịch – Bộ cộng – Bộ ñiều khiển logic
28
Nhân hai số nhị phân có dấu (mã bù 2) • Nhắc lại mã bù 2: – Các bit có trọng số như số nhị phân không dấu – NGOẠI TRỪ bit MSB có trọng số âm
• Nhân hai số mã bù 2: – Nếu số nhân có MSB = 0 thì thủ tục shift-and-add ñược tiến hành như bình thường – Nếu số nhân có MSB = 1 thì số bị nhân cần phải ñược ñảo dấu trước khi cộng với tích thành phần
29
30
Lấy bù 2 vì bit MSB của số nhân = 1 Tại mỗi bước tích thành phần và shifted multiplicant ñược mở rộng từ k bit thành (k+1) bit rồi mới cộng ñể tránh overflow, nếu có carry out thì bỏ qua
Chia hai số nhị phân • Sử dụng thuật toán chia shift-and-subtract
Chia hai số nhị phân mã bù 2 • Tham khảo…
31
32
• Tham khảo
Nhân chia số thực
Mã BCD
33
• BCD: Binary Coded Decimal • Sử dụng tổ hợp 4 bits ñể mô tả số trong hệ thập phân • Có nhiều kiểu mã: – BCD 8421 (hay BCD): trọng số của 4 bit là 8, 4, 2, 1 – BCD 2421: trọng số của 4 bit là 2, 4, 2, 1
34
Cộng hai số BCD
Nếu có carry out của bit 3 cần cộng thêm 0110 vào ñể hiệu chỉnh
35
36
Mã các ký tự • Có thể sử dụng tổ hợp các bit ñể mã hóa “data” • Mã các ký tự thường ñược sử dụng trong các chương trình máy tính • Thường sử dụng mã ASCII (American Standard Code for Information Interchange) 0XXXYYYY: – Tổ hợp mã các ký tự thông thường – Tổ hợp một số ký tự ñiều khiển
37
38