Bài giảng Kiến trúc máy tính - Chương 3: Biểu diễn số học trong máy tính - Đoàn Thị Quế

pdf 120 trang Gia Huy 16/05/2022 5230
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 3: Biểu diễn số học trong máy tính - Đoàn Thị Quế", để 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_may_tinh_chuong_3_bieu_dien_so_hoc_trong.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 3: Biểu diễn số học trong máy tính - Đoàn Thị Quế

  1. Chương 3 Biểu diễn số học trong máy tính 1
  2. Nội dung  Mã hóa và lưu trữ dữ liệu trong máy tính  Các hệ đếm liên quan đến máy tính  Biểu diễn số nguyên  Biểu diễn số dấu phẩy động  Biểu diễn ký tự 2
  3. 3.1 Mã hoá và lưu trữ dữ liệu trong máy tính 1. Nguyên tắc chung về mã hoá dữ liệu: . Mọi thông tin đưa vào máy tính đều được mã hoá thành dữ liệu nhị phân . Độ dài từ dữ liệu (word) . Độ dài từ dữ liệu là số bit được sử dụng để mã hoá loại dữ liệu tương ứng . Thường là bội của 8 bit . Ví dụ: 8, 16, 32, 64 bit . 8 bits = 1 Byte . 210 bytes = 1024 bytes = 1 Kilobyte (1K) . 210 KB = 1024 KB = 1 Megabyte (MB) . 210 MB = 1024 MB = 1 Gigabyte (GB) 3
  4. 1. Nguyên tắc chung về mã hoá dữ liệu (tiếp) . Mã hóa theo các chuẩn quy ước . Dữ liệu số: . Số nguyên: mã hóa theo một số chuẩn . Số thực: mã hóa bằng số dấu phẩy động . Dữ liệu ký tự: . Mã hóa theo bộ mã ký tự . Ví dụ: bộ mã ASCII (American Stadards Code for Information) và bộ mã Unicode 4
  5. 2. Thứ tự lưu trữ các byte trong bộ nhớ chính . Bộ nhớ chính thường được tổ chức theo byte: . Độ dài từ dữ liệu có thể chiếm từ một đến nhiều byte . Phải biết thứ tự lưu trữ các byte trong bộ nhớ chính đối với các dữ liệu nhiều byte . Có 2 cách lưu trữ: . Lưu trữ đầu nhỏ (Little-endian): Byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn . Lưu trữ đầu to (Big-endian): Byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn. 5
  6. Ví dụ lưu trữ dữ liệu 32-bit 6
  7. 3.2 Các hệ đếm liên quan đến máy tính  Hệ thập phân  Hệ nhị phân  Hệ thập lục phân 7
  8. 1. Biểu diễn số tổng quát  Nguyên tắc chung của biểu diễn số:  Dùng một số hữu hạn các ký hiệu  Số ký hiệu được dùng gọi là cơ số của hệ, ký hiệu là r  Ghép với nhau theo qui ước về vị trí i  Trọng số của hệ là r , với i là số nguyên dương hoặc âm 8
  9. 1. Biểu diễn số tổng quát (tiếp)  Biểu diễn số A trong hệ đếm cơ số r: A = (an-1an-2 a0,a-1a-2 a-m)r Phần nguyên Phần lẻ  Trong đó  ai: Các chữ số trong hệ đếm  r: cơ số của hệ đếm  Giá trị của A: n-1 n-2 0 A = (an-1r + an-2r + + a0r -1 -2 -m + a-1r + a-2r + + a-mr )10 9
  10. 1. Biểu diễn số tổng quát (tiếp)  Các hệ đếm cơ bản: Tên hệ đếm Các ký hiệu Cơ số (r) Hệ thập phân (Decimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10 Hệ nhị phân 0, 1 2 (Binary) Hệ thập lục phân 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16 (Hexadecimal) A, B, C, D, E, F 10
  11. 2. Hệ thập phân (Decimal)  Cơ số r = 10  10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 n  Dùng n chữ số thập phân có thể biểu diễn được 10 giá trị khác nhau:  00 000 = 0 n  99 999 = 10 – 1 Ví dụ: Dùng 2 chữ số biểu thị được 100 giá trị khác nhau (từ 0 – 99) 11
  12. 2. Hệ thập phân (tiếp)  Biểu diễn số A trong hệ thập phân: A = (an-1an-2 a0,a-1a-2 a-m)10  Giá trị của A được tính như sau: n-1 n-2 0 A = an-110 + an-210 + + a010 -1 -2 -m + a-110 + a-210 + + a-m10 12
  13. Ví dụ số thập phân Trọng số 102 101 100 10-1 10-2      4 7 2 , 3 8   MSD LSD (Most significant digit) (Least significant digit) 472,38 = 4.102 + 7.101 + 2.100 + 3.10-1 + 8.10-2 13
  14. 3. Hệ nhị phân (Binary)  Cơ số r = 2  2 chữ số: 0, 1  Chữ số nhị phân gọi là bit  Bit là đơn vị thông tin nhỏ nhất n  Dùng n bit có thể biểu diễn được 2 giá trị khác nhau:  00 000 = 0 n  11 111 = 2 – 1 Ví dụ: Dùng 2 bit 4 giá trị khác nhau: 00, 01, 10, 11 Dùng 8 bit biểu diễn được bao nhiêu giá trị khác nhau? 14
  15. 3. Hệ nhị phân (tiếp)  Biểu diễn số A trong hệ nhị phân: A = (an-1an-2 a0,a-1a-2 a-m)2  Giá trị của A được tính như sau: n-1 n-2 0 A = (an-12 + an-22 + + a02 -1 -2 -m + a-12 + a-22 + + a-m2 )10 15
  16. Ví dụ số nhị phân Trọng số 22 21 20 2-1 2-2      1 0 1 , 1 1   MSB LSB (Most significant bit) (Least significant bit) 2 1 0 -1 -2 101, 112 = (1.2 + 0.2 + 1.2 + 1.2 + 1.2 )10 = 5,7510 16
  17. Nhận xét Hệ thập phân Hệ nhị phân − Quen dùng, dễ nhận biết − Không quen dùng, khó nhận biết − Cách biểu diễn gọn − Cách biểu diễn cồng kềnh − Khả năng biểu diễn của hệ lớn − Khả năng biểu diễn của hệ nhỏ − Mất ít thời gian đọc và viết − Tốn nhiều thời gian đọc và viết − Thể hiện bằng thiết bị kỹ thuật − Thể hiện bằng thiết bị kỹ thuật khó khăn và phức tạp rất dễ 17
  18. 4. Hệ thập lục phân (Hexadecimal)  16 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F  Dùng để viết gọn cho số nhị phân 18
  19. 4. Hệ thập lục phân (tiếp)  Biểu diễn số nhị phân trong hệ Hexa:  Cứ một nhóm 4 bit sẽ được thay thế bằng 1 chữ số Hexa Ví dụ chuyển đổi số nhị phân số Hexa 0000 00002 = 0016 1011 00112 = B316 010 1101 1001 10102 = 0010 1101 1001 10102 = 2D9A16 1111 1111 1111 11112 = FFFF16 19
  20. 5. Chuyển đổi giữa các hệ đếm a. Chuyển đổi từ hệ cơ số bất kỳ sang hệ cơ số 10 b. Chuyển đổi từ hệ cơ số 10 sang các hệ khác c. Chuyển đổi giữa hệ nhị phân và hệ Hexa 20
  21. a. Chuyển đổi từ hệ cơ số bất kỳ sang hệ cơ số 10  Số A ở hệ cơ số r: A = (an-1an- 2 a0,a-1a-2 a-m)r  Giá trị của A ở hệ 10: n-1 n-2 0 A = (an-1r + an-2r + + a0r -1 -2 -m + a-1r + a-2r + + a-mr )10  Ví dụ: 3 2 0 -2 -3 (1101,011)2 = ( 2 + 2 + 2 + 2 + 2 )10 = 13,37510 1 0 (1E)16 = ( 1 x 16 + 14 x 16 )10 = 3010 21
  22. b. Chuyển đổi từ hệ cơ số 10 sang các hệ khác  Chuyển đổi phần nguyên  Chuyển đổi phần lẻ 22
  23. Chuyển đổi phần nguyên  Lấy phần nguyên chia lặp cho cơ số mới  Thực hiện cho tới khi kết quả của phép chia bằng 0 thì dừng  Lấy số dư sau mỗi lần chia, viết đảo trật tự là kết quả cần tìm 23
  24. Ví dụ 5910 = ( ? )2 5910 = ( ? )16 24
  25. Ví dụ (tiếp) 59 : 2 = 29 dư 1 59 : 16 = 3 dư 11 B 29 : 2 = 14 dư 1 3 : 16 = 0 dư 3 14 : 2 = 7 dư 0 Kết quả: 5910 = 3B16 7 : 2 = 3 dư 1 3 : 2 = 1 dư 1 1 : 2 = 0 dư 1 Kết quả: 5910 = 1110112 25
  26. Chuyển đổi phần lẻ  Lấy phần lẻ nhân lặp lại cho cơ số mới  Phép nhân dừng lại khi phần lẻ của tích tạo thành bằng không hoặc số nhị phân tạo thành đạt đến một độ chính xác nhất định thì thôi  Lấy phần nguyên thu được sau mỗi lần nhân, viết tuần tự là kết quả cần tìm 26
  27. Ví dụ  0,37510 = ( ? )2 0,210 = ( ? )2 27
  28. Ví dụ (tiếp) 0,375 x 2 = 0,75 phần nguyên là 0 0,75 x 2 = 1,5 phần nguyên là 1 0,5 x 2 = 1,0 phần nguyên là 1 Kết quả: 0,37510 = 0,0112 28
  29. Ví dụ (tiếp) 0,2 x 2 = 0,4 phần nguyên là 0 0,4 x 2 = 0,8 phần nguyên là 0 0,8 x 2 = 1,6 phần nguyên là 1 0,6 x 2 = 1,2 phần nguyên là 1 0,2 x 2 = 0,4 phần nguyên là 0 0,4 x 2 = 0,8 phần nguyên là 0 0,8 x 2 = 1,6 phần nguyên là 1 0,6 x 2 = 1,2 phần nguyên là 1 Kết quả: 0,210 0,001100112 29
  30. c. Chuyển đổi giữa hệ nhị phân và hệ Hexa  Mỗi chữ số ở hệ Hexa thay bằng một nhóm 4 bit nhị phân tương ứng (bảng 2.2)  Ví dụ 3: 2AF516 = ( 0010 1010 1111 0101 )2 30
  31. Bài tập áp dụng 1. Đổi các số thập phân sau sang số nhị phân: 14; 189 2. Đổi các số nhị phân sau sang số thập phân: 10110;10011011 3. Giá trị thập phân lớn nhất của số nhị phân 8 bit, 16 bit là bao nhiêu? 4. Đổi các số nhị phân trong bài 2 sang số Hexa 5. Đổi các số Hexa sau sang số thập phân: 1A, 7FF (Lưu ý:Số nhị phân biểu diễn cho một số thập phân tương ứng được gọi là mã nhị phân trực tiếp (straight binary code)) 31
  32. 6. Các phép tính số học và logic trong hệ nhị phân  Các phép tính số học : Cộng, trừ, nhân, chia  Các phép tính logic: NOT, AND, OR, XOR, NOR 32
  33. Phép cộng Qui tắc phép cộng:  Cộng lần lượt từ phải sang trái  Cộng các chữ số có cùng trọng số  Kết quả phép cộng 2 bit phải tuân theo nhóm các quy tắc sau: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 nhớ 1 33
  34. Ví dụ  Thực hiện phép cộng sau trong hệ nhị phân: (131 +9)10 13110 = 100000112 + 910 = 000010012 14010 = 100011002 34
  35. Phép trừ Qui tắc phép trừ:  Trừ lần lượt từ phải sang trái  Trừ các chữ số có cùng trọng số  Kết quả phép trừ 2 bit tuân theo nhóm quy tắc: 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 mượn 1 35
  36. Ví dụ phép trừ 1001 0110 - 0101 1011 0011 1011 36
  37. Phép nhân  Được thực hiện thông qua phép cộng và phép dịch bit  Qui tắc phép nhân 2 bit: x1 x2 x1. x2 0 0 0 0 1 0 1 0 0 1 1 1 37
  38. Ví dụ 1001 (Số bị nhân) X 0110 (Số nhân) 0000 1001 Các tích riêng phần 1001 0000 0110110 38
  39. Phép chia  Được thực hiện thông qua phép trừ, phép cộng và phép dịch bit 39
  40. Ví dụ 40
  41. Các phép toán logic cơ bản  NOT  AND  OR 41
  42. Phép Phủ định (NOT)  Phép phủ định đối với một biến logic A, còn gọi là phép đảo (NOT), là khi tác động tới A, A sẽ nhận giá trị đảo của giá trị có trước khi tác động  Ký hiệu phép đảo: A A’ A (hoặc A’) 0 1  Cổng đảo: 1 0 A F = A’ 42
  43. Phép Phủ định của số nhị phân nhiều bit  43
  44. Phép Và (AND)  Phép Và (AND), kí hiệu bằng dấu “.” giữa hai hoặc nhiều các biến thừa số  Ví dụ: A.B A B A.B  Ví dụ: A.B.C 0 0 0  Kết quả được gọi là một tích 0 1 0  Khi tất cả các biến thừa số bằng 1 1 0 0 thì tích sẽ bằng 1, các trường hợp 1 1 1 còn lại tích bằng 0  Cổng AND 2 đầu vào: A B F = A.B 44
  45. Phép Hoặc (OR)  Phép Hoặc (OR), kí hiệu bằng dấu “+” giữa các biến số hạng  Ví dụ: A + B A B A+B  Ví dụ: A + B + C 0 0 0  Kết quả được gọi là một tổng 0 1 1  Khi tất cả các biến số hạng bằng 0 thì tổng bằng 0, các trường hợp 1 0 1 còn lại tổng bằng 1 1 1 1  Cổng OR 2 đầu vào: A B F = A + B 45
  46. 3.3 Biểu diễn số nguyên  Số nguyên không dấu (Unsigned Interger)  Số nguyên có dấu (Signed Interger) 46
  47. 1. Biểu diễn số nguyên không dấu . Dùng n bit để biểu diễn số nguyên không dấu A: an-1an-2 a1a0 . Giá trị của A: n 1 i A ai 2 i 0 . Dải biểu diễn của A: từ 0 đến (2n – 1) 47
  48. Với n = 8 bit 48
  49. Với n = 16 bit, 32 bit, 64 bit 49
  50. Các ví dụ Ví dụ 1: Biểu diễn các số nguyên không dấu sau đây bằng 8 bit: A = 41; B = 150 Giải: A = 41 = 32 + 8 + 1 = 25 + 23 + 20 41 = 0010 1001 B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21 150 = 1001 0110 50
  51. Các ví dụ (tiếp) 51
  52. Bài tập áp dụng 1. Biểu diễn các số nguyên không dấu sau đây sang số nhị phân 8 bit: 132, 129, 234, 261 2. Cho các số nguyên không dấu được biểu diễn bằng số nhị phân 8 bit, hãy xác định giá trị của chúng: 1101 1010 1011 1011 52
  53. 2. Biểu diễn số nguyên có dấu  Quy tắc dấu và trị tuyệt đối  Mã bù một  Mã bù hai 53
  54. a. Quy tắc dấu và trị tuyệt đối . n bit: . 1 bit (bit MSB) làm bit dấu . n-1 bit còn lại biểu diễn giá trị tuyệt đối 2n-2 21 20 s 1 (n-1) n 2 i S = 0 số dương: A 2 ai 0 n 2 S = 1 số âm: A 2ia  i 54 0
  55. a. Quy tắc dấu và trị tuyệt đối (tiếp) . Có hai cách biểu diễn số 0 là: . 0000 0000 (+0) . 1000 0000 (-0) . Dải giá trị biểu diễn: . - (2n-1 -1) đến + (2n-1 -1) . n = 8: biểu diễn các số từ -127 đến + 127 . n = 16: biểu diễn các số từ - 32767 đến + 32767 55
  56. Ví dụ Biểu diễn số nguyên sau theo quy tắc dấu và trị tuyệt đối: +58 và – 80 Giải + 58 = 0011 1010 - 80 = 1101 0000 56
  57. b. Mã bù một Số bù một và số bù hai: 57
  58. Số bù một và số bù hai (tiếp) 58
  59. Quy tắc tìm số bù một và số bù hai => Phép đảo dấu cả số nhị phân A được thực hiện bằng lấy bù hai của số A 59
  60. Biểu diễn số nguyên có dấu theo mã bù một . Với A là số âm: Mã bù một của A được biểu diễn bằng số bù một của số dương tương ứng 60
  61. Biểu diễn số nguyên có dấu theo mã bù một . Có hai cách biểu diễn số 0 là: . 0000 0000 (+0) . 1111 1111 (-0) . Giá trị của A được xác định như sau: n 2 n 1 i an 1(2 1) ai 2 i 0 . Dải giá trị biểu diễn: - (2n-1 – 1) đến + (2n-1 – 1) . n = 8: biểu diễn các số từ -127 đến + 127 . n = 16: biểu diễn các số từ - 32767 đến + 32767 61
  62. Các ví dụ . Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây theo qui tắc mã bù một: A = + 58; B = -80 Giải: A = +58 = 0011 1010 B = -80 Ta có: 80 = 0101 0000 Số bù một = 1010 1111 Vậy mã bù một của -80 là: 1010 1111 62
  63. Các ví dụ (tiếp) . Ví dụ 2: Hãy xác định giá trị của các số nguyên có dấu được biểu diễn theo mã bù một dưới đây: P = 0110 0010 Q = 1101 1011 Giải: P = 0110 0010 = 26 + 25 + 21 = 64+32+2 = +98 Q = 1101 1011 = -(27 – 1) + 26 + 24 + 23 +21 + 20 = -127+64+16+8+2+1 = -36 63
  64. c. Biểu diễn số nguyên có dấu theo mã bù hai 64
  65. Biểu diễn số nguyên có dấu theo mã bù hai . Chỉ có một cách biểu diễn số 0 là: 0000 0000 65
  66. Với n = 8 bit 66
  67. Với n = 16 bit, 32 bit, 64 bit 67
  68. Các ví dụ . Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây theo qui tắc mã bù hai: A = + 58; B = -80 Giải: A = +58 = 0011 1010 B = -80 Ta có: + 80 = 0101 0000 Số bù một = 1010 1111 + 1 Số bù hai = 1011 0000 Vậy mã bù hai của -80 là: 1011 0000 68
  69. Các ví dụ (tiếp) . Ví dụ 2: Hãy xác định giá trị của các số nguyên có dấu được biểu diễn theo mã bù hai dưới đây: P = 0110 0010 Q = 1101 1011 Giải: P = 0110 0010 = 26 + 25 + 21 = 64+32+2 = +98 Q = 1101 1011 = -27 + 26 + 24 + 23 +21 + 20 = -128+64+16+8+2+1 = -37 69
  70. Nhận xét Cách biểu diễn + 58 -80 Dấu và trị tuyệt đối 0011 1010 1101 0000 Mã bù một 0011 1010 1010 1111 Mã bù hai 0011 1010 1011 0000 70
  71. Chuyển đổi giữa các thanh ghi có độ dài khác nhau 71
  72. Bài tập áp dụng 1. Biểu diễn các số nguyên sau đây theo các quy tắc: dấu và trị tuyệt đối, mã bù một, mã bù hai sử dụng thanh ghi 8 bit: + 55, -76 2. Xác định giá trị của các số nguyên có dấu được biểu diễn theo mã nhị phân: A = 0110 1011 B = 1101 1001 72
  73. 3. Biểu diễn số thập phân theo mã BCD  Binary Coded Decimal  Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0 đến 9: 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001  Còn 6 tổ hợp không sử dụng: 1010, 1011, 1100, 1101, 1110, 1111 73
  74. Ví dụ số BCD 65 0110 0101BCD 39 0011 1001BCD 2084 0010 0000 1000 0100BCD 9640 1001 0110 0100 0000BCD 74
  75. Phép cộng số BCD  35 0011 0101BCD + 61 + 0110 0001BCD 96  1001 0110BCD Kết quả đúng (không phải hiệu chỉnh)  87 1000 0111BCD + 96 + 1001 0110BCD 183 1 0001 1101 kết quả sai + 0110 0110  hiệu chỉnh 0001 1000 0011BCD = 183 kết quả đúng 75
  76. Phép trừ số BCD  65 0110 0101BCD - 31 - 0011 0001BCD 34  0011 0010BCD Kết quả đúng (không phải hiệu chỉnh)  61 0110 0001BCD - 38 - 0011 1000BCD 23 0010 1001 kết quả sai - 0110  hiệu chỉnh 0010 0011BCD = 23 kết quả đúng 76
  77. 4. Thực hiện các phép toán số học đối với số nguyên  Arithmetic and Logic Unit (ALU) 77
  78. 4. Thực hiện các phép toán số học đối với số nguyên a. Phép cộng số nguyên không dấu 78
  79. 4. Thực hiện các phép toán số học đối với số nguyên a. Phép cộng số nguyên không dấu 79
  80. Nguyên tắc cộng số nguyên không dấu 80
  81. Ví dụ cộng số nguyên không dấu 81
  82. b. Cộng số nguyên có dấu  Thường thực hiện phép cộng theo mã bù hai:  Các số hạng biểu diễn ở dạng mã bù hai  Cộng cả bit dấu 82
  83. Nguyên tắc cộng số nguyên có dấu 83
  84. Ví dụ cộng số nguyên có dấu không tràn 84
  85. Ví dụ cộng số nguyên có dấu bị tràn 85
  86. d. Nhân số nguyên không dấu 86
  87. Nhân số nguyên không dấu (tiếp) 87
  88. Bộ nhân số nguyên không dấu 88
  89. Lưu đồ nhân số nguyên không dấu 89
  90. Ví dụ nhân số nguyên không dấu 90
  91. e. Nhân số nguyên có dấu . Bước 1. Chuyển đổi số bị nhân và số nhân thành số dương tương ứng . Bước 2. Nhân hai số dương bằng giải thuật nhân số nguyên không dấu, được tích của hai số dương. . Bước 3. Hiệu chỉnh dấu của tích: . Nếu hai thừa số ban đầu cùng dấu thì giữ nguyên kết quả ở bước 2. . Nếu hai thừa số ban đầu là khác dấu thì đảo dấu kết quả của bước 2. 91
  92. f. Chia số nguyên không dấu 92
  93. Bộ chia số nguyên không dấu 93
  94. Lưu đồ chia số nguyên không dấu 94
  95. Ví dụ  Số bị chia Q = 1001 0011 (147)  Số chia M = 0000 1011 (11)  Thương số: 0000 1101 (13)  Số dư: 0000 0100 (4) PC = 8 A Q 0000 0000 1001 0011 Các giá trị khởi đầu 0000 0001 0010 0110 Dịch trái A, Q - 0000 1011 1111 0110 0010 0110 A  A – M +0000 1011 0000 0001 0010 0110 A  A + M PC = 7 95
  96. Ví dụ (tiếp) A Q 0000 0010 0100 1100 Dịch trái A, Q - 0000 1011 1111 0111 0100 1100 A  A – M +0000 1011 0000 0010 0100 1100 A  A + M PC = 6 A Q 0000 0100 1001 1000 Dịch trái A, Q - 0000 1011 1111 1001 1001 1000 A  A – M +0000 1011 0000 0100 1001 1000 A  A + M 96 PC = 5
  97. Ví dụ (tiếp) A Q 0000 1001 0011 0000 Dịch trái A, Q - 0000 1011 1111 1110 0011 0000 A  A – M +0000 1011 0000 1001 0011 0000 A  A + M PC = 4 A Q 0001 0010 0110 0000 Dịch trái A, Q - 0000 1011 0000 0111 0110 0000 A  A – M 0000 0111 0110 0001 Q0  1 PC = 3 97
  98. Ví dụ (tiếp) A Q 0000 1110 1100 0010 Dịch trái A, Q - 0000 1011 0000 0011 1100 0010 A  A – M 0000 0011 1100 0011 Q0  1 PC = 2 A Q 0000 0111 1000 0110 Dịch trái A, Q - 0000 1011 1111 1100 1000 0110 A  A – M +0000 1011 0000 0111 1000 0110 A  A + M 98 PC = 1
  99. Ví dụ (tiếp) A Q 0000 1111 0000 1100 Dịch trái A, Q - 0000 1011 0000 0100 0000 1100 A  A – M 0000 0100 0000 1101 Q0  1 PC = 0 99
  100. g. Chia số nguyên có dấu 100
  101. 3.4 Số dấu phẩy động 1. Số dấu phẩy tĩnh:  3,625 0011,1010  6,5 0110,1000 Cần 1 byte để lưu trữ  Khối lượng mặt trời: 1990000000000000000000000000000000 g Cần 14 byte để lưu trữ  Khối lượng điện tử: 0,0000000000000000000000000 00910956 g Cần 12 byte để lưu trữ  Máy tính số biểu diễn và lưu trữ các số trên ở dạng số dấu phẩy động: 1,99 x 1033 g 0,910956 x 10-27 g 101
  102. 2. Số dấu phẩy động  Số dấu phẩy động (Floating Point Number)  Tổng quát: một số thực X được biểu diễn theo kiểu số dấu phẩy động như sau: X = M * RE  M là phần định trị (Mantissa)  R là cơ số (Radix)  E là phần mũ (Exponent)  Số dấu phẩy động được chuẩn hóa: chuẩn IEEE 754 102
  103. 3. Chuẩn IEEE 754  IEEE (Institute of Electrical and Electronics Engineering): Viện công nghệ Điện và Điện Tử  Cơ số R = 2  3 dạng số dấy phẩy động cơ bản:  Số có độ chính xác đơn (Single): 32 bit  Số có độ chính xác kép (Double): 64 bit  Số có độ chính xác mở rộng (Quarduple): 128 bit 103
  104. 3. Chuẩn IEEE 754 (tiếp)  Biểu diễn số X: X = (-1)s x 1,m x 2E = (-1)s x 1,m x 2e-B s e m  S là bit dấu:  S = 0 số dương  S = 1 số âm  m là phần lẻ của phần định trị M: M = 1,m  e là số mũ được dịch chuyển đi B ne-1  B (độ dịch) = 2 - 1  ne là độ dài bit của trường số mũ e 8-1  ví dụ: độ dài của trường e là 8 bit B = 2 -1 = 127 104
  105. Định dạng của các dạng biểu diễn: s e m 1 bit 8 bit 23 bit 32 bit s e m 1 bit 11 bit 52 bit 64 bit s e m 1 bit 15bit 112 bit 128 bit 105
  106. Dạng chính xác đơn 32 bit s e m 1 bit 8 bit 23 bit 32 bit  S là bit dấu:  S = 0 số dương  S = 1 số âm  m (23 bit) là phần lẻ của phần định trị M  e (8 bit) là số mũ được dịch chuyển đi B 8-1  B = 2 – 1 = 127  Công thức xác định giá trị của số thực X: X = (-1)s x 1,m x 2E = (-1)s x 1,m x 2e-127 (E = e-127) 106
  107. Các quy ước đặc biệt 107
  108. Ví dụ 1 108
  109. Ví dụ 2 109
  110. Ví dụ 3 Giải: 110
  111. Bài tập áp dụng Biểu diễn các số thực sau đây về dạng số dấu phẩy động IEEE 754 32 bit: X = -27,0625 Y = 24,2 111
  112. Bài tập về nhà  Tìm hiểu về tính toán số học với số dấu phẩy động.  Tài liệu: Mục 9.5 trong giáo trình Stallings, William. Computer organization and architecture: designing for performance. 2010, 8th edition. 112
  113. 3.5 Biểu diễn ký tự  Bộ mã ASCII (American Standard Code for Information Interchange)  Bộ mã Unicode 113
  114. 1. Bộ mã ASCII  Do ANSI (American National Standard Institute) thiết kế 8  Bộ mã 8-bit có thể mã hóa được 2 ký tự, có mã từ: 0016 ÷ FF16 , trong đó:  128 ký tự chuẩn có mã từ 0016 ÷ 7F16  128 ký tự mở rộng có mã từ 8016 ÷ FF16 114
  115. 2. Bộ mã hợp nhất: Unicode  Do các hãng máy tính hàng đầu thiết kế  Bộ mã 16-bit  Bộ mã đa ngôn ngữ  Có hỗ trợ các ký tự tiếng Việt 116
  116. Bài tập 1. Tìm hiểu bộ mã ASCII và Unicode 2. Biểu diễn các số sau bằng thanh ghi 8 bit theo: qui tắc dấu và trị tuyệt đối, mã bù 1, mã bù 2 a. 121 c. - 89 b. 35 d. - 125 3. Biểu diễn các số sau sang số dấu phẩy động theo tiêu chuẩn IEEE 754 32 bit, 64 bit a. 384 c. 73,25 b. - 5 d. - 43,2 118
  117. Bài tập 4. Tính giá trị thập phân của các số nguyên có dấu được biểu diễn theo mã nhị phân a. 0101 1001 c. 1001 1100 b. 1100 1111 d. 1010 0100 5. Cho số dấu phẩy động biểu diễn theo tiêu chuẩn IEEE 32 bit: C2828000H. Hãy tính giá trị thập phân của số đã cho? 119
  118. Hết chương 3 120