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 3780
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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 7 Hệ nhị phân (tt) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 14
  8. Tổng quát bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 16
  9. Bảng mã 8421 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 17 Chuy ển đổi t ổng quát bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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ự bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 29 Hi ện t ượng tràn s ố bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 ) bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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. bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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). bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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. bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 ố bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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, bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn thông tin trong máy tính 74
  38. bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn 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) bangtqh@utc2.edu.vn 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 bangtqh@utc2.edu.vn Ch ươ ng 2 - Bi ểu di ễn 81thông tin trong máy tính