Bài giảng Kiến trúc và tổ chức máy tính - Chương 2: Biểu diễn thông tin trong máy tính

pdf 41 trang ngocly 6580 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc và tổ chức máy tính - Chương 2: Biểu diễn thông tin trong máy tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_va_to_chuc_may_tinh_chuong_2_bieu_dien_t.pdf

Nội dung text: Bài giảng Kiến trúc và tổ chức máy tính - Chương 2: Biểu diễn thông tin trong máy tính

  1. KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH (Computer Organization and Architecture) Ch ươ ng 2 Bi ểu di ễn thông tin trong máy tính [email protected] Nội dung 1. Các h ệ đế m c ơ b ản 2. Bi ểu di ễn s ố nguyên 3. Các phép toán s ố h ọc đố i v ới s ố nguyên 4. Số d ấu ph ẩy độ ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 2
  2. 2.1. Các hệ đế m c ơ bản  Hệ th ập phân (Decimal System ) → Con ng ườ i s ử dụng.  Hệ nh ị phân (Binary System ) → Máy tính s ử d ụng  Hệ bát phân (Octal System ) → Dùng để vi ết g ọn s ố nh ị phân  Hệ th ập l ục phân (Hexadecimal System ) → Dùng để vi ết g ọn s ố nh ị phân [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 3 Hệ thập phân (Decimal System)  Cơ s ố 10  Dùng 10 ký s ố: 0, 1, 2, , 9  Dùng n ch ữ s ố th ập phân có th ể bi ểu di ễn đượ c 10 n giá tr ị khác nhau: • 00 0 = 0 • 99 9 = 10 n – 1 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 4
  3. Hệ thập phân (tt)  Quy t ắc đế m [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 5 Ví dụ 215.37 = 2*10 2 + 1*10 1 + 5*10 0 + 3*10 -1 + 7*10 -2  Các ch ữ s ố ph ần nguyên: 215 : 10 = 21 dư 5 21 : 10 = 2 dư 1 2 : 10 = 0 dư 2  Các ch ữ s ố ph ần th ập phân: 0.37 * 10 = 3.7 ph ần nguyên = 3 0.7 * 10 = 7.0 ph ần nguyên = 7 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 6
  4. Hệ nhị phân (Binary System) Cơ s ố 2 Dùng 2 ch ữ s ố: 0, 1 Ch ữ s ố nh ị phân g ọi là bit (bi nary digi t) Bit là đơ n v ị thông tin nh ỏ nh ất Dùng n ch ữ s ố nh ị phân có th ể bi ểu di ễn đượ c 2n giá tr ị khác nhau: 00 0 = 0 11 1 = 2 n - 1 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 7 Hệ nhị phân (tt) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 8
  5. Hệ nhị phân (tt)  Quy t ắc đế m [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 9 Ví dụ  Có s ố nh ị phân nh ư sau: 1011 1001.101 (2)  Khi đó, giá tr ị c ủa chúng đượ c tính là: 1011 1001.101 (2) = = 27 + 2 5 + 24 + 23 + 20 + 2-1 + 2-3 = 128 + 32 + 16 + 8 + 1 + 0.5 + 0.125 = 185.625 (10) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 10
  6. Hệ Bát phân ( Octal System) Cơ s ố 8 Dùng 8 ch ữ s ố: 0, 1, 2, 3, 4, 5, 6, 7 Dùng n ch ữ s ố bát phân có th ể bi ểu di ễn đượ c 8 n giá tr ị khác nhau: • 00 0 = 0 • 77 7 = 8 n – 1 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 11 Hệ bát phân (tt)  Quy t ắc đế m [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 12
  7. Hệ th ập l ục phân (Hexadecimal System) Cơ s ố 16 Dùng 16 ch ữ s ố: 0,1, , 9, A, B, , F Dùng để vi ết g ọn cho s ố nh ị phân: c ứ một nhóm 4 bit sẽ đượ c thay b ằng một ch ữ s ố Hexa Dùng n ch ữ s ố Hexa có th ể bi ểu di ễn đượ c 16 n giá tr ị khác nhau: • 00 0 = 0 • FF F = 16 n - 1 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 13 Hệ thập l ục phân (tt)  Quy t ắc đế m [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 14
  8. Tổng quát [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 15 Chuy ển đổi gi ữa các hệ đế m [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 16
  9. Bảng mã 8421 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 17 Chuy ển đổi t ổng quát [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 18
  10. Phương pháp ghép nhóm [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 19 Chuy ển đổ i s ố th ập phân → nh ị phân  Chuy ển đổ i ph ần nguyên: – Cách 1: Chia liên ti ếp cho 2 r ồi l ấy ph ần d ư – Cách 2: Phân tích thành t ổng các lu ỹ th ừa c ủa 2  Chuy ển đổ i ph ần th ập phân: – Nhân ph ần th ập phân v ới 2, l ấy ph ần nguyên [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 20
  11. Ví dụ chuy ển đổi Có s ố ở h ệ th ập phân nh ư sau: 61.3125 – Chuy ển đổ i ph ần nguyên: 61 (10) = 111101 (2) – Chuy ển đổ i ph ần th ập phân: • 0.3125 * 2 = 0.625 ph ần nguyên = 0 • 0.625 * 2 = 1.25 ph ần nguyên = 1 •0.25 * 2 = 0.5 ph ần nguyên = 0 •0.5 * 2 = 1.0 ph ần nguyên = 1 –Vậy: 61.3125 (10) = 111101.0101 (2) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 21 Mã hoá dữ li ệu trong máy tính Nguyên t ắc chung –Mọi dữ li ệu đư a vào máy tính đề u ph ải đượ c mã hoá thành số nh ị phân – Các lo ại dữ li ệu: •Dữ li ệu nhân tạo: do con ng ườ i quy ướ c •Dữ li ệu tự nhiên: tồn tại khách quan với con ng ườ i Mã hoá d ữ li ệu nhân t ạo: •Dữ li ệu dạng số: mã hoá theo chu ẩn quy ướ c •Dữ li ệu ký tự: mã hoá theo bộ mã ký tự [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 22
  12. Mã hoá dữ li ệu trong máy tính (tt)  Mã hoá và tái t ạo tín hi ệu t ự nhiên TH Lt ục TH V.lý Bộ t ạo TH s ố tín hi ệu ADC MT TH V.lý TH Lt ục TH s ố Bộ tái t ạo DAC tín hi ệu [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 23 Mã hoá dữ li ệu trong máy tính (tt) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 24
  13. Mã hoá dữ li ệu trong máy tính (tt) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 25 Lưu tr ữ dữ li ệu trong máy tính Bộ nh ớ chính đượ c tổ ch ức theo byte Độ dài dữ li ệu có th ể chi ếm 1 hay nhi ều byte Có 2 cách lưu tr ữ các byte trong bộ nh ớ chính: – Little-endian (đầ u nh ỏ): byte có ý ngh ĩa th ấp hơn đượ c lưu tr ữ ở vị trí có đị a ch ỉ nh ỏ hơn – Big-endian (đầ u to): byte có ý ngh ĩa th ấp hơn đượ c lưu tr ữ ở vị trí có đị a ch ỉ lớn hơn [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 26
  14. Ví dụ l ưu tr ữ dữ li ệu 32 bit 12 34 56 78 . . . Đị a ch ỉ . . . Đị a ch ỉ 78 X 12 X 56 X +1 34 X +1 34 X + 2 56 X + 2 12 X + 3 78 X + 3 . . . . . . đầ u nh ỏ đầ u to Ví d ụ: Intel 80x86, Px: đầ u nh ỏ Motorola 680x0: đầ u to Power PC, Itanium: cả hai lo ại [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 27 2.2. Bi ểu di ễn s ố nguyên  Số nguyên không d ấu (unsigned integer )  Số nguyên có d ấu (signed integer )  Chuy ển đổ i độ dài  Bài t ập [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 28
  15. Số nguyên không dấu Nguyên t ắc chung – Dùng n ch ữ s ố nh ị phân thì bi ểu di ễn đượ c 2n số –Dải bi ểu di ễn: 0 ÷ 2n – 1 – Ví d ụ: • n = 8 bit: Dải bi ểu di ễn: 0 ÷ 28 -1, hay 0 ÷ 255 • n = 16 bit: Dải bi ểu di ễn: 0 ÷ 216 - 1, hay 0 ÷ 65535 • n = 32 bit: Dải bi ểu di ễn: 0 ÷ 232 – 1, 0 ÷4294967295 Cách bi ểu di ễn – Bi ểu di ễn ở d ạng nh ị phân m ột cách bình th ườ ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 29 Hi ện t ượng tràn s ố [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 30
  16. Các ví dụ  Ví d ụ 1: bi ểu di ễn các s ố nguyên không d ấu sau đây dùng 8 bit: A = 73; B = 138  Gi ải: – A = 73 = 64 + 8 + 1 = 2 6 + 2 3 + 20 73 = 0100 1001 – B = 138 = 128 + 8 + 2 = 2 7 + 2 3 + 21 138 = 1000 1010 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 31 Các ví dụ (tt)  Ví dụ 2: Hãy xác đị nh giá tr ị của các số nguyên không dấu C, D đượ c bi ểu di ễn bằng 8 bit nh ư sau: C = 0010 1010; D = 1010 0110  Gi ải: – C = 0010 1010 = 25 + 23 + 21 =32+8+2=42 – D = 1010 0110 = 27 + 25 + 22 + 21 = = 128 + 32 + 4 + 2 = 166 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 32
  17. Số nguyên có dấu Nguyên t ắc chung – Dùng n ch ữ s ố nh ị phân thì bi ểu di ễn đượ c 2 n số –Dải bi ểu di ễn: - 2n-1 ÷ 2n-1 – 1 – Ví d ụ: • n = 8 bit: Dải bi ểu di ễn: - 27 ÷ 27 -1, hay -128 ÷ 127 • n = 16 bit: - 215 ÷ 215 - 1, hay - 32768 ÷ 32767 • n = 32 bit: - 231 ÷ 231 - 1, hay - 2147483648 ÷ 2147483647 Cách bi ểu di ễn: – PP1: Dùng d ấu và độ l ớn (Sign-Magnitude ) – PP2: Dùng mã bù 2 (Two’s complement ) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 33 Dùng dấu và độ l ớn Bit l ớn nh ất bi ểu di ễn d ấu: – 0: bi ểu di ễn s ố d ươ ng – 1: bi ểu di ễn s ố âm Các bit còn l ại bi ểu di ễn giá tr ị – Ví d ụ: +23 = 0001 0111; -23 = 1001 0111 Vấn đề n ảy sinh –Cần quan tâm c ả ph ần d ấu và ph ần độ l ớn khi th ực hi ện các phép toán s ố h ọc – Có đế n 2 cách bi ểu di ễn cho s ố 0 (+0 và -0) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 34
  18. Dùng mã bù 2 Đố i v ới s ố d ươ ng: bi ểu di ễn d ạng nh ị phân Đố i v ới s ố âm: tìm s ố bù 2: – B1: đổ i s ố d ươ ng t ươ ng ứng → nh ị phân – B2: tìm s ố bù 1 ( đả o bit 1 → 0, 0 → 1) – B3: tìm s ố bù 2: s ố bù 1 c ộng v ới 1 Số bù 2 thu đượ c chính là cách bi ểu di ễn s ố âm Đặ c điểm: – Th ực hi ện các phép toán s ố h ọc d ễ dàng – Ch ỉ có m ột s ự bi ểu di ễn duy nh ất cho s ố 0 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 35 Dùng mã bù 2 (tt)  Dạng t ổng quát c ủa s ố nguyên A A = a n-1an-2 .a 2a1a0  Giá tr ị c ủa A đượ c tính b ởi công th ức:  Dải giá tr ị c ủa s ố nguyên s ử d ụng n bit: -2n-1 ÷2n-1 – 1 - 8 bit: -128 ÷ 127 - 16 bit: -32 768 ÷ 32 767 - 32 bit: -2 147 483 648 ÷ 2 147 483 647 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 36
  19. Các ví dụ  Ví d ụ 1: Bi ểu di ễn các s ố nguyên có d ấu sau đây bằng 8 bit: A = + 69 ; B = - 92  Gi ải: A = + 69 = 0100 0101 B = - 92 Ta có: + 92 = 0101 1100 Số bù 1 = 1010 0011 + 1 Số bù 2 = 1010 0100 Vậy: B = -92 = 1010 0100 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 37 Các ví dụ  Ví d ụ 2: Xác đị nh giá tr ị c ủa các s ố nguyên có d ấu bi ểu di ễn d ướ i đây (dùng d ấu - độ lớn): C = 0110 1010; D = 1100 0011  Gi ải: C = 0110 1010 = + (64 + 32 + 8 + 2) = 106 D = 1100 0011 = - (64 + 2 + 1) = - 67 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 38
  20. Các ví dụ  Ví d ụ 3 : Xác đị nh giá tr ị c ủa các s ố nguyên có d ấu đượ c bi ểu di ễn d ướ i đây (dùng mã bù 2): E = 0101 1110; F = 1101 1010  Gi ải: E = 0101 1110 = 64 + 16 + 8 + 4 + 2 = 94 F = 1101 1010 = -128 + 64 + 16 + 8 + 2 = -38 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 39 Chuy ển đổi độ dài (byte word)  Đố i v ới s ố d ươ ng: thêm/b ớt s ố 0 ở tr ướ c: +23 = 0001 0111 (8 bit) +23 = 0000 0000 0001 0111 (16 bit)  Đố i v ới s ố âm: thêm/b ớt s ố 1 ở tr ướ c -23 = 1110 1001 (8 bit) -23 = 1111 1111 1110 1001 (16 bit) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 40
  21. Bi ểu di ễn s ố nguyên theo mã BCD  BCD – Binary Coded Decimal – Đượ c dùng để tính toán s ố th ập phân trong h ệ nh ị phân – Là s ố vi ết theo h ệ c ơ s ố 16 nh ưng tính theo h ệ c ơ s ố 10 • 12 BCD  trong h ệ nh ị phân là 0001 0010  có giá tr ị là 12 ch ứ không ph ải giá tr ị 18 (12 16 = 18) • Dùng 4 bit để mã hóa cho các ch ữ s ố th ập phân t ừ 0 9 (xem l ại b ảng mã 8421 ph ần các s ố t ừ 0-9) • Có 6 t ổ h ợp bit không s ử d ụng: 1010; 1011; 1100; 1101; 1110; 1111 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 41 Các ki ểu l ưu tr ữ s ố BCD  BCD không gói ( unpacked BCD ) –Mỗi s ố BCD-4bit đượ c l ưu tr ữ trong 4 bit th ấp c ủa byte – Ví d ụ: S ố 35 đượ c l ưu trong 2 byte 0 0 1 1 0 1 0 1  BCD gói ( packed BCD ) – Hai s ố BCD-4bit đượ c l ưu chung trong 1 byte – Ví d ụ: S ố 35 đượ c l ưu trong 1 byte 0 0 1 1 0 1 0 1 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 42
  22. 2.3. Các phép toán trên s ố nguyên  Phép c ộng: th ực hi ện nh ư cách tính tay thông th ườ ng nh ưng ở h ệ nh ị phân Cộng Kết qu ả Nh ớ 0 + 0 0 0 0 + 1 1 0 1 + 0 1 0 1 + 1 0 1  Phép tr ừ: Th ực hi ện b ằng cách c ộng s ố b ị tr ừ v ới bù 2 c ủa s ố tr ừ – Ví dụ: A=1001, B=0011 có bù hai là 1101 –Vậy A-B = 1001+1101 = (1)0110 . S ố (1) là s ố nh ớ (carry) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 43 Bài t ập 1. Số nh ị phân 8 bit (11001100), số này tươ ng ứng với số nguyên th ập phân có dấu là bao nhiêu nếu số trên đượ c bi ểu di ễn ở dạng: -Số bù 1. -Số bù 2. 2. Đổ i các số sau đây: a. (011011)2 ra số th ập phân. b. (-2005) 10 ra s ố nh ị phân 16 bits. c. (55.875) 10 ra s ố nh ị phân. [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 44
  23. 2.3. Các phép toán trên s ố nguyên (tt)  Phép nhân s ố không d ấu: – Gi ải thu ật nhân s ố n bit a) Đặ t b ộ đế m t ới n b) Xoá thanh ghi 2n bit chứa tích thành phần; Nhớ ← 0 c) Ki ểm tra bit LSB c ủa s ố nhân; n ếu là 1 thì c ộng s ố b ị nhân vào n bit nhi ều ý ngh ĩa nh ất c ủa tích thành ph ần d) Dịch ph ải Nh ớ, Tích thành ph ần, S ố nhân đi 1 bit e) Gi ảm b ộ đế m đi 1. L ặp l ại các b ướ c t ừ c cho đế n khi b ộ đế m b ằng không. Đọ c k ết qu ả t ừ thanh ghi tích thành ph ần  Ví d ụ: 10 x 13 –Số b ị nhân: 10 (10) = 1010 (2) –Số nhân: 13 (10) = 1101 (2) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 45 Gi ải thuật nhân s ố không dấu Start C:=0; A:=0; Bé ®Õm:=n M chøa sè bÞ nh©n Q chøa sè nh©n §óng Q0 = 1? Sai C,A:=A+M DÞch ph¶i C, A, Q Dec(Bé ®Õm) Sai §óng Bé ®Õm = 0? End TÝch chøa trong A,Q [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 46
  24. Sơ đồ mạch nhân Sè bÞ nh©n Mn-1 . . . M 0 Céng Logic ®iÒu khiÓn Bé céng n bit dÞch vµ céng DÞch ph¶i C An-1 . . . A 0 Qn-1 . . . Q 0 Sè nh©n [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 47 Ví dụ: 13 x 10 Bướ c B. đế m Số nhân Nh ớ Tích thành ph ần Vòng l ặp Ghi chú (a) và (b) 4 1101 0 0000 0000 Kh ởi tr ị,LSB=1 (c) 4 110 1 0 1010 0000 1 Cộng 1010 (d) 4 0110 0 0101 0 000 1 Dịch ph ải (e) 3 0110 0 0101 0000 1 Gi ảm n (c) 3 011 0 0 0101 0000 2 LSB=0 (d) 3 00 11 0 00 10 10 00 2 Dịch ph ải (e) 2 001 1 0 0010 1000 2 Gi ảm n, LSB=1 (c) 2 0011 0 1100 1000 3 Cộng 1010 (d) 2 0001 0 0110 01 00 3 Dịch ph ải (e) 1 000 1 0 0110 0100 3 Gi ảm n, LSB=1 (c) 1 0001 1 0000 0100 4 Cộng 1010 (d) 1 0000 0 1000 001 0 4 Dịch ph ải (e) 0 0000 0 1000 0010 4 Gi ảm n. D ừng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 48
  25. 2.3. Các phép toán trên s ố nguyên (tt)  Phép nhân s ố có d ấu: – Gi ải pháp 1: • Chuy ển đổ i thành s ố d ươ ng n ếu c ần • Th ực hi ện phép nhân nh ư đố i v ới s ố không d ấu • Ki ểm tra bit d ấu c ủa 2 s ố, n ếu chúng trái d ấu thì tích là số âm. – Gi ải pháp 2: sử dụng thu ật toán Booth kinh điển (có th ể áp dụng cho 2 số dươ ng, một số âm và một dươ ng ho ặc cả 2 số đề u âm). [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 49 Gi ải thuật Booth Start A:=0; Q -1 :=0; Bé ®Õm:=n M chøa sè bÞ nh©n Q chøa sè nh©n = 10 = 01 Q0, Q -1 = 11 A := A - M = 00 A := A + M DÞch ph¶i A, Q, Q -1 Dec(Bé ®Õm) L−u ý: A n-1 ®−îc t¸i t¹o Sai §óng Bé ®Õm = 0? End TÝch chøa trong A,Q [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 50
  26. Ví dụ 1: -7 x 3 = -21 A Q(SN) Q-1 M(SBN) 0000 001 1 0 1001 Kh ởi t ạo Count = 4 Lần 1, 0111 0011 0 1001 A ← A - M Count = 3 0011 100 1 1 1001 SHR A, Q, Q -1 Lần 2, Count = 2 0001 110 0 1 1001 SHR A, Q, Q -1 Lần 3, 1010 1100 1 1001 A ← A + M Count = 1 1101 011 0 0 1001 SHR A, Q, Q-1 Lần 4, Count = 0 1110 1011 0 1001 SHR A, Q, Q -1 Kết qu ả: 1110 1011 (dạng bù 2 c ủa 21) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 51 Ví dụ 2: -5 x -6 = +30 A Q(SN) Q-1 M(SBN) 0000 101 0 0 1011 Kh ởi t ạo Count = 4 Lần 1, 0000 010 1 0 1011 SHR A, Q, Q -1 Count = 3 0101 0101 0 1011 A ← A - M Lần 2, Count = 2 0010 101 0 1 1011 SHR A, Q, Q -1 1101 1010 1 1011 A ← A + M Lần 3, Count = 1 1110 110 1 0 1011 SHR A, Q, Q-1 0011 1101 0 1011 A ← A - M Lần 4, Count = 0 0001 1110 1 1011 SHR A, Q, Q -1 Kết qu ả: 0001 1110 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 52
  27. Ví dụ 3: 7 x 3 = 21 A Q(SN) Q-1 M(SBN) 0000 001 1 0 0111 Kh ởi t ạo Count = 4 1001 0011 0 0111 A ← A - M Lần 1, 1100 100 1 1 0111 SHR A, Q, Q -1 Count = 3 Lần 2, 1110 010 0 1 0111 SHR A, Q, Q -1 Count = 2 0101 0100 1 0111 A ← A + M Lần 3, Count = 1 0010 101 0 0 0111 SHR A, Q, Q-1 Lần 4, 0001 0101 0 0111 SHR A, Q, Q -1 Count = 0 Kết qu ả: 0001 0101 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 53 2.3. Các phép toán trên s ố nguyên (tt)  Phép chia s ố nh ị phân 1. Nạp số chia vào thanh ghi M và số bị chia vào các thanh ghi A, Q. Số bị chia ph ải ở dạng 2n bit, vì vậy, ví dụ số 4 bit 0111 tr ở thành 00000111 và 1001 tr ở thành 11111001 2. Dịch trái A, Q đi 1 bit 3. NếuMvàA cócùngdấu, th ực hi ện gán A←A-M, ng ượ c lại gán A ← A+M 4. thao tác trên thành công nếu dấu của A là nh ư nhau tr ướ c và sau thao tác a. Nếu thao tác thành công ho ặc (A=0 và Q=0) thì đặ t Q0 ← 1 b. Nếu thao tác không thành công và (A ≠0 ho ặc Q ≠ 0) thì đặ t Q0 ← 0 và khôi ph ục giá tr ị tr ướ c đó của A 5. Lặp lại bướ c 2 đế n bướ c 4 số lần lặp bằng số bit của Q 6. Ph ần dư là A. Nếu dấu của số chia và số bị chia gi ống nhau thì th ươ ng là Q, ng ượ c lại th ươ ng là số bù 2 của Q. [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 54
  28. Thuật toán chia s ố nhị phân Bé ®Õm := n Start M chøa sè chia (n bit) A,Q chøa sè bÞ chia (2n bit) DÞch tr¸i A,Q ®i 1 bit B := A §óng Sai M, A cïng dÊu? A := A - M A := A + M §óng A, B cïng dÊu Sai hoÆc A = Q = 0? Q0 = 1 Q0 = 0; A := B Dec(Bé ®Õm) §óng Sai Bé ®Õm = 0? End [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 55 Ví dụ 1: 12 : 4 = 3, dư 0 A Q M = 0100 (sè chia) 0000 1100 Khëi t¹o gi¸ trÞ (sè chia vµ bÞ chia cïng dÊu ) 0001 1000 DÞch tr¸i 1 bit A, Q 1101 M cïng dÊu A → A := A - M 0001 100 0 A kh¸c dÊu sau khi trõ → Q0 = 0 vµ phôc håi A 0011 0000 DÞch tr¸i 1 bit A, Q 1110 M cïng dÊu A → A := A - M 0011 000 0 A kh¸c dÊu sau khi trõ → Q0 = 0 vµ phôc håi A 0110 0000 DÞch tr¸i 1 bit A, Q 0010 M cïng dÊu A → A := A - M 0010 000 1 A cïng dÊu sau khi trõ → Q0 = 1 0100 0010 DÞch tr¸i 1 bit A, Q 0000 M cïng dÊu A → A := A – M 0000 0011 A cïng dÊu sau khi trõ → Q0 = 1. A chøa d, Q chøa th¬ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 56
  29. Ví dụ 2: 13 : (-4) = -3, dư 1 A Q M = 1100 (sè chia) 0000 1101 Khëi t¹o gi¸ trÞ (sè chia vµ bÞ chia kh¸c dÊu ) 0001 1010 DÞch tr¸i 1 bit A, Q 1101 M kh¸c dÊu A → A := A + M 0001 101 0 A kh¸c dÊu sau khi céng → Q0 = 0 vµ phôc håi A 0011 0100 DÞch tr¸i 1 bit A, Q 1111 M kh¸c dÊu A → A := A + M 0011 010 0 A kh¸c dÊu sau khi céng → Q0 = 0 vµ phôc håi A 0110 1000 DÞch tr¸i 1 bit A, Q 0010 M kh¸c dÊu A → A := A + M 0010 100 1 A cïng dÊu sau khi céng → Q0 = 1 0101 0010 DÞch tr¸i 1 bit A, Q 0001 M kh¸c dÊu A → A := A + M 0001 0011 A cïng dÊu sau khi céng → Q0=1. A chøa d, Q chøa bï 2 cña th¬ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 57 Ví dụ 3: (-11) : 3 = (-3), dư (-2) A Q M = 0011 (sè chia) 1111 0101 Khëi t¹o gi¸ trÞ (sè chia vµ bÞ chia kh¸c dÊu ) 1110 1010 DÞch tr¸i 1 bit A, Q 0001 M kh¸c dÊu A → A := A + M 1110 101 0 A kh¸c dÊu sau khi céng → Q0 = 0 vµ phôc håi A 1101 0100 DÞch tr¸i 1 bit A, Q 0000 M kh¸c dÊu A → A := A + M 1101 010 0 A kh¸c dÊu sau khi céng → Q0 = 0 vµ phôc håi A 1010 1000 DÞch tr¸i 1 bit A, Q 1101 M kh¸c dÊu A → A := A + M 1101 100 1 A cïng dÊu sau khi céng → Q0 = 1 1011 0010 DÞch tr¸i 1 bit A, Q 1110 M kh¸c dÊu A → A := A + M 1110 0011 A cïng dÊu sau khi céng → Q0=1. A chøa d, Q chøa bï 2 cña th¬ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 58
  30. Ví dụ 4: (-14) : (-6) = 2, dư (-2) A Q M = 1010 (sè chia) 1111 0010 Khëi t¹o gi¸ trÞ (sè chia vµ bÞ chia cïng dÊu ) 1110 0100 DÞch tr¸i 1 bit A, Q 0100 M cïng dÊu A → A := A - M 1110 010 0 A kh¸c dÊu sau khi trõ → Q0 = 0 vµ phôc håi A 1100 1000 DÞch tr¸i 1 bit A, Q 0000 M cïng dÊu A → A := A - M 1100 100 0 A kh¸c dÊu sau khi trõ → Q0 = 0 vµ phôc håi A 1001 0000 DÞch tr¸i 1 bit A, Q 1111 M cïng dÊu A → A := A + M 1111 000 1 A cïng dÊu sau khi céng → Q0 = 1 1110 0010 DÞch tr¸i 1 bit A, Q 0100 M cïng dÊu A → A := A - M 1110 0010 A kh¸c dÊu sau khi céng → Q0= 0. A chøa d, Q chøa cña th¬ng [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 59 2.4. Số dấu phẩy động  Số d ấu ph ẩy độ ng (floating point) dùng để tính toán trên s ố th ực –Một s ố th ực X đượ c bi ểu di ễn theo ki ểu d ấu ph ẩy độ ng nh ư sau: = ± ∗ ± –Với: • m là ph ần đị nh tr ị (mantissa) •B là c ơ s ố (base) • e là ph ần m ũ (exponent) – Mantissa quy ết đị nh độ chính xác – Exponent quy ết đị nh độ l ớn/nh ỏ c ủa s ố [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 60
  31. 2.4. Số dấu phẩy động (tt)  Một s ố có nhi ều d ạng bi ểu di ễn – Khó x ử lý –Cần có s ự chu ẩn hóa [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 61 Chuẩn IEEE 754/85  Số d ấu ph ẩy độ ng chính xác đơ n ( single precision ) –Sử d ụng 32 bit, độ l ệch m ũ (bias) = 127 – Công th ức tính giá tr ị: −1 ∗ 1. ∗ 2  Số dấu ph ẩy độ ng chính xác kép ( double precision ) –Sử d ụng 64 bit, độ l ệch m ũ (bias) = 1023 – Công th ức tính giá tr ị: −1 ∗ 1. ∗ 2  Số d ấu ph ẩy độ ng chính xác kép m ở r ộng ( double- extended precision ) –Sử d ụng 80 bit, độ l ệch m ũ (bias) = 16383 – Công th ức tính giá tr ị: −1 ∗ 1. ∗ 2 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 62
  32. Chuẩn IEEE 754/85 (32 bit) 31 30 23 22 0 S (dÊu) E (phÇn mò) M (phÇn ®Þnh trÞ) 1 bit 8 bit 23 bit Khi đó, 1 s ố th ực b ất k ỳ đượ c bi ểu di ễn: X = −1 ∗ 1. ∗ 2 Dải giá tr ị bi ểu di ễn: 2-127 < X < 2 127 , hay: 10 -38 < X < 10 38 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 63 Chuy ển đổ i → IEEE 754/85 (32 bit) Bướ c 1: Đổ i s ố th ực đó → nh ị phân Bướ c 2: Chuy ển v ề d ạng: ±1,aa a * 2 b Bướ c 3: Xác đị nh các giá tr ị: S = 0 nếu s ố d ươ ng; S = 1 n ếu s ố âm E – 127 = b ⇒ E = 127 + b → nh ị phân M = aa a00 0 23 bit [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 64
  33. Chuy ển đổ i → IEEE 754/85 (32 bit) Ví d ụ 1: 17.625 → IEEE 754/85 –Bướ c 1: A = 17.625 = 10001.101 –Bướ c 2: A = 1.0001101 * 2 4 (±1.aa a * 2 b) –Bướ c 3: • S = 0 (vì A > 0) • E – 127 = 4 ⇒ E = 131 = 1000 0011 • M = 000 1101 0000 0000 0000 0000 ⇒ A = 0 100 0001 1 000 1101 0000 0000 0000 0000 = 41 8D 00 00H [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 65 Chuy ển đổ i → IEEE 754/85 (32 bit) Ví d ụ 2: -112.3125 → IEEE 754/85 –Bướ c 1: B = -112.3125 = -1110000.0101 –Bướ c 2: B = -1,1100000101 * 2 6 (±1,aa a * 2 b) –Bướ c 3: • S = 1, do B < 0 • E – 127 = 6 ⇒ E = 133 = 1000 0101 • M = 110 0000 101 0 0000 0000 0000 ⇒ A = 1 100 0010 1 110 0000 1010 0000 0000 0000 = C2 E0 A0 00H [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 66
  34. Chuy ển đổ i → IEEE 754/85 (32 bit) Ví d ụ 3: -19 / 64 → IEEE 754/85 – B1: C = -19 / 64 = -19 * (1 / 64) – B2: C = -10011 * 2 -6 = -1.0011 * 2 -2 – B3: Ta có: • S = 1, vì C < 0 • E – 127 = -2 ⇒ E = 125 = 0111 1100 • M = 001 1 000 0000 0000 0000 0000 ⇒ A = 1 011 1110 0 001 1000 0000 0000 0000 0000 = BE 18 00 00H [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 67 Chuy ển đổ i → IEEE 754/85 (32 bit) Ví d ụ 4: Tìm giá tr ị s ố th ực: C2 0D 00 00H Gi ải X = C2 0D 00 00H = = 1 100 0010 0 000 1101 0000 0000 0000 0000 – S = 1 ⇒ X < 0 – E = 1000 0100 = 132 ⇒ E -127 = 5 – M = 000 1101 0000 0000 0000 0000 ⇒ X = -1.0001101 * 2 5 = -100011.01 = -35,25 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 68
  35. Chuẩn IEEE 754/85 (64bit) 63 62 52 51 0 S (dÊu) E (phÇn mò) M (phÇn ®Þnh trÞ) 1 bit 11 bit 52 bit Khi đó, 1 s ố th ực b ất k ỳ đượ c bi ểu di ễn: X = −1 ∗ 1. ∗ 2 Dải giá tr ị bi ểu di ễn: 2-1023 < X < 21023 hay: 10 -308 < X < 10 308 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 69 Chuẩn IEEE 754/85 (64bit) 79 78 64 63 0 S (dÊu) E (phÇn mò) M (phÇn ®Þnh trÞ) 1 bit 15 bit 64 bit Khi đó, 1 s ố th ực b ất k ỳ đượ c bi ểu di ễn: X = −1 ∗ 1. ∗ 2 Dải giá tr ị bi ểu di ễn: 2-16 383 < X < 216 383 hay: 10 -4 932 < X < 10 4 932 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 70
  36. Các quy ước đặ c bi ệt  E = 0, M = 0 → X = 0 x000 0000 0 000 0000 0000 0000 0000 0000 = ±0  E = 11 1, M = 0 → X = ±∞ x111 1111 1 000 0000 0000 0000 0000 0000 = ±∞  E = 11 1, M ≠ 0 → X: NaN (Not a Number) [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 71 Bi ểu di ễn ký t ự  Bộ mã ASCII (American Standard Code for Information Interchange)  Bộ mã Unicode [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 72
  37. Bộ mã ASCII Do ANSI ( American National Standard Institute) thi ết kế Là b ộ mã 8 bit, có th ể mã hóa đượ c 2 8 ký t ự, có mã t ừ 00 16 ÷ FF 16 , gồm: – 128 ký t ự chu ẩn, có mã 00 16 ÷ 7F 16 , gồm: • Các ký t ự điều khi ển: màn hình, máy tin, truy ền tin. • Các ký t ự so ạn th ảo v ăn b ản – 128 ký t ự m ở r ộng, có mã 80 16 ÷ FF 16 , g ồm: – Các ký t ự đặ c bi ệt, k ẻ khung, ti ếng Pháp, [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 73 Bộ mã Unicode  Là bộ mã hợp nh ất, do các hãng máy tính hàng đầ u thi ết kế  Là bộ mã 16 bit  Là bộ mã đa ngôn ng ữ  Có hỗ tr ợ các ký tự ti ếng Vi ệt [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 74
  38. [email protected] Bài t ập (các hệ đế m)  Bài 1: Đổ i các s ố sau t ừ h ệ th ập phân → hệ nh ị phân: a) 28; b) 89; c) 294 d) 34,5; e) 55,25; f) 46,3125  Bài 2: Đổ i các s ố sau t ừ h ệ nh ị phân → hệ th ập phân: a) 11001; b) 111001 c) 10111011; d) 10001001  Bài 3: Đổ i các s ố sau t ừ h ệ th ập phân → hệ th ập l ục: a) 68; b) 29; c) 215  Bài 4: Đổ i các s ố sau t ừ h ệ th ập l ục → hệ th ập phân: a) AF; b) 123; c) 10D [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 76
  39. Bài t ập (bi ểu di ễn s ố nguyên)  Bài 1: Bi ểu di ễn các s ố sau dùng d ấu và độ l ớn (8 bit): a) +69; b) +105; c) -28; d) -121  Bài 2: Bi ểu di ễn các s ố sau dùng d ấu và độ l ớn (16 bit): a) +109; b) +105; c) -98; d) -131  Bài 3: Bi ểu di ễn các s ố sau dùng mã bù 2 (8 bit – không d ấu): a) 57; b) 48; c) 98; d) 131  Bài 4: Bi ểu di ễn các s ố sau dùng mã bù 2 (8 bit – có dấu): a) +57; b) +48; c) -98; d) -31 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 77 Bài t ập (bi ểu di ễn s ố nguyên)  Bài 5: Bi ểu di ễn các s ố sau dùng mã bù 2 (16 bit – không d ấu): a) 157; b) 108; c) 128; d) 35  Bài 6: Bi ểu di ễn các s ố sau dùng mã bù 2 (16 bit – có d ấu): a) 137; b) 119; c) -113; d) -53  Bài 7: Có các bi ểu di ễn sau (dùng d ấu và độ l ớn), hãy xác đị nh giá tr ị c ủa chúng: a) 0100 1011 b) 1001 1100 c) 0000 0000 1001 0010; d) 1000 0000 0110 1100 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 78
  40. Bài t ập (bi ểu di ễn s ố nguyên)  Bài 8: Có các bi ểu di ễn sau (dùng mã bù 2 – không dấu), hãy xác đị nh giá tr ị: a) 0100 001 b) 1010 0100 c) 0000 0000 1001 0010; d) 1000 0000 0010 0100  Bài 9: Có các bi ểu di ễn sau (dùng mã bù 2 – có d ấu), hãy xác đị nh giá tr ị c ủa chúng: a) 0100 1011 b) 1101 1100 c) 0000 0000 0101 0011 d) 1111 1111 1110 1110 [email protected] Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 79 Bài t ập (các phép toán v ới s ố nguyên)  Bài 1: Cho bi ết k ết qu ả khi th ực hi ện trên máy tính các phép c ộng sau (8 bit) và gi ải thích: a) 56 + 78 (không d ấu); b) 121 + 40 (không dấu) c) 68 + 40 (có d ấu); d) 67 + (-100) (có dấu) e) 102 + 88 (có d ấu); f) (-80) + (-62) (có d ấu)  Bài 2: Mô t ả quá trình nhân trên máy tính các s ố 4 bit sau đây: a)13*7; b)6*14; c)15*14 d)(-5)*3; e)6*(-2); f)(-7)*(-4)  Bài 3: Mô t ả quá trình chia trên máy tính các s ố sau đây: a)13:5; b)10:(-4) c)(-11):6; d)(-14):(-5) [email protected] Ch ươ ng 2 - Bi ểu di ễn 80thông tin trong máy tính
  41. Bài t ập (bi ểu di ễn s ố thực)  Bài 1: Bi ểu di ễn các s ố sau theo chu ẩn IEEE 754/85 32 bit: a) 78,25; b) -23,625; c) 50,3125 d) -133/128 e) 20,15  Bài 2: Có các bi ểu di ễn theo chu ẩn IEEE 754/85 sau, xác đị nh giá tr ị c ủa chúng: a) 41 8D 00 00H; b) C2 96 20 00H c) 3E A0 00 00H; d) BC 91 00 00H  Bài 3: Có các bi ểu di ễn theo chu ẩn IEEE 754/85 sau, xác đị nh giá tr ị c ủa chúng: a) 10 00 00 00H; b) 7F 80 00 00H c) FF 80 00 00H; d) 7F 80 00 10H [email protected] Ch ươ ng 2 - Bi ểu di ễn 81thông tin trong máy tính