Bài giảng Cấu trúc máy tính - Bài 7: Biểu diễn dữ liệu

ppt 29 trang cucquyet12 12710
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính - Bài 7: Biểu diễn dữ liệu", để 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:

  • pptbai_giang_cau_truc_may_tinh_bai_7_bieu_dien_du_lieu.ppt

Nội dung text: Bài giảng Cấu trúc máy tính - Bài 7: Biểu diễn dữ liệu

  1. BIỂU DIỄN DỮ LIỆU
  2. @IT SỐ BÙ ◼ Số bù giúp đơn giản giản phép trừ và luận lý. ◼ Có 2 loại số bù trong hệ cơ số: bù r, bù (r– 1). ◼ Ví dụ: Bù 2, bù 1 trong hệ cơ số 2 Bù 10, bù 9 trong hệ cơ số 10 Số bù r -1: Đặt N là số có n ký số trong hệ r thì bù r của N là (rn -1) –N Ta có: bù 9 của thập phân N là (10n – 1), 10n là số 1 theo sau là n số 0.
  3. @IT SỐ BÙ (tt) ◼ Ví dụ: 103 = 1000, vậy 10n -1 là số gốm n số 9 103- 1 =999. Vậy bù 9 của N nhận được bằng cách trừ 9 cho từng ký số của N. Ví dụ: bù 9 của 546700 là 999999 – 546700 = 453299 Bù 9 của 12389 là 99999 – 12389 = 87610
  4. @IT SỐ BÙ (tt) ◼ Với r = 2: Bù 1 của số nhị phân N là (2n -1) – N Với 2n là số 1 theo sau n số 0. 4 Ví dụ: 2 = 100002 2n -1 là số nhị phân gồm n số 1 4 Ví dụ: 2 -1 = 11112. Vậy bù 1 của số nhị phân nhận được bằng cách trừ 1 cho mỗi ký số. Khi trừ, kết quả là 0/1 nếu ký số là 1/0.
  5. @IT SỐ BÙ (tt) ◼ Số bù r: Bù r số N gồm n ký số là rn – N khi N ≠ 0, và là 0 khi N = 0. Nhận xét: bù r = bù (r-1) + 1 và bù r của N là rn – N. Vậy bù r của r là rn –(rn – N) = N Ví dụ: bù 10 của 238910 là 7610 + 1 = 7611 Bù 2 của 1011002 là 010011 + 1 = 010100
  6. @IT SỐ BÙ (tt) ◼ Có thể tính bù 10 theo quy tắc sau: - Giữ nguyên các ký số 0 bên phải cho đến khi gặp các ký số khác 0. - Lấy 10 trừ cho các ký số đầu tiên khác 0 đó. - Lấy 9 trừ cho các số còn lại. Ví dụ: bù 10 của 246700 là 753300 Tương tự có thể tính bù 2 theo quy tắc: - Giữ nguyên các ký số 0 bên phải cho đến ký số 1 đầu tiên. - Phần còn lại đổi 0 thành 1 và ngược lại. Ví dụ: bù 2 của 1101100 là 0010100
  7. @IT SỐ BÙ (tt) ◼ Các định nghĩa trên cho số không có phần phân (không có dấu chấm cơ). ◼ Nếu có, chuyển sang dạng không có dấu chấm để lấy bù, sau đó phục hồi lại (dấu chấm). ◼ Khi cộng các số không dấu, nếu không có nhớ, kết quả nhận được chính là kết quả cuối cùng, nếu có nhớ thì kết quả nhận được là sai (thường gọi là tràn)
  8. @IT PHÉP TRỪ SỐ KHÔNG DẤU (tt) ◼ Trừ trực tiếp bằng cách mượn 1 ở vị trí có nghĩa cao hơn sẽ không thuận tiện khi cài đặt phần cứng, do đó ta sẽ dùng số bù. ◼ Phép trừ hai số M và N không dấu gồm n ký số M – N (N≠ 0) trong cơ số r như sau: - Cộng số bị trừ M với số bù r của số trừ N: M + (rn – N) = M – N + rn
  9. @IT PHÉP TRỪ SỐ KHÔNG DẤU (tt) n - Nếu M ≥ N, tổng tạo ra số nhớ r , bỏ số nhớ này đi, kết quả còn lại là M – N. - Nếu M < N, tổng không có nhớ và bằng rn – (N – M), chính là bù r của N – M. Để có kết quả lấy bù r của tổng và thêm dấu trừ ở trước.
  10. @IT PHÉP TRỪ SỐ KHÔNG DẤU (tt) * Ví dụ: Xét 72532 – 13250 = 59282 Như vậy bù 10 của 13250 là 86750 * Ví dụ: Xét 13250 – 72532 = -59282 Như vậy bù 10 của 72532 là 27468 Lấy bù 10 của 40718 và thêm dấu trừ ta được kết quả: -59282
  11. @IT PHÉP TRỪ SỐ KHÔNG DẤU (tt) ◼ Tương tự đối với nhị phân. ◼ Ví dụ: Cho X = 1010100; Y = 1000011 Tính X – Y: Tính Y - X
  12. @IT SỐ NGUYÊN. ◼ Số nguyên có thể biểu diễn dưới dạng dấu lượng, bù 1, bù 2 hoặc quá n. ◼ Dấu lượng, bù 1, bù 2. Số nguyên dương dấu lượng, bù 1 hoặc bù 2 được biểu diễn dưới dạng một tràng bit. Bit cực trái là 0 (gọi là bit dấu hoặc MSB – Most Significant Bit) 0 và phần còn lại là số nhị phân không dấu.
  13. @IT ◼ Khi số âm, biểu diễn theo một trong ba dạng: dấu lượng, như số dương ngưng dấu là 1; Bù 1, lấy bù 1 của số dương; Bù 2, lấy bù 2 của số dương. ◼ Ví dụ: +14 biểu diễn trong thanh ghi 8 bit theo cả 3 dạng là 00001110 -14 biểu diễn theo dạng: dấu lượng là 10001110; bù 1 là: 11110001; bù 2 là: 11110010 Dạng dấu lượng khó dùng nên thường dùng dạng bù. Bù 1 ít được dùng trong số học vì có 2 cách biểu diễn số 0 (+0 và -0)
  14. @IT ◼ Số quá n: Số quá n (excess-n) cũng là một tràng bit, có giá trị bằng với trị nhị phân không dấu của tràng bit biểu diễn trừ bớt n. Ví dụ: Số quá 3 (4bit) có trị từ -3 đến +12 được biểu diễn lần lượt là: 0000(-3), 0001(-2), 0010(-1), 0011(0), 0100(1), 0101(2), 0110(3), 0111(4), 1000(5), 1001(6), 1010(7), 1011(8), 1100(9), 1101(10), 1110(11), 1111(12)
  15. @IT ◼ Phép cộng số nguyên bù 2 Để cộng số bù 2 chỉ cần cộng 2 số (kể cả dấu), bỏ bit nhớ (nếu có), phần còn lại là kết quả (nếu không tràn). Ví dụ: +6 00000110 -6 11111010 +13 00001101 +13 00001101 +19 00010011 +7 00000111
  16. @IT ◼ Phép trừ số nguyên bù 2: Với phép trừ có dấu và số theo dạng bù 2: cộng số bị trừ với bù 2 số trừ. Bỏ bít nhớ (nếu có và không tràn). Ví dụ: (-6) (-6) 11111010 -(-13) +(+13) 00001101 +7 100000111 Kết quả là 00000111
  17. @IT TRÀN ◼ Khi cộng hai số bù 2, không thể tràn khi 2 số khác dấu, có thể tràn khi 2 số cùng dấu. ◼ Ví dụ cộng 2 số 8bit bù 2 có trị 70, 80 hoặc -70, -80 sẽ tràn (-128 -> 127) Ví dụ: Nhớ 0 1 Nhớ 1 0 +70 01000110 -70 01000110 +80 01010000 +80 01010000 +150 10010110 -150 01101010
  18. @IT ◼ Cộng 2 số dương, kết quả âm -> tràn ◼ Cộng 2 số âm, kết quả dương -> tràn ◼ Có thể phát tràn bằng cách xét 2bit nhớ vào và ra tại bit dau. ◼ Khi 2bit này khác nhau -> tràn. ◼ Có thể cho 2bit này vào cổng XOR, nếu ngõ ra là 1 ->tràn
  19. @IT SỐ BCD (Binary Coded Decimal) ◼ Hệ nhị phân thích hợp cho các hệ thống nhưng con người lại quen với hệ 10. ◼ Do đó khi xuất nhập dữ liệu thường là nhập xuất theo dạng thập phân. ◼ Nếu việc nhập xuất số thập phân không nhiều thì có thể chuyển số hệ 10 khi nhập sang hệ 2, tính toán xong (theo hệ 2), chuyển ngược lại sang hệ 10 trước khi xuất ra ngoài. ◼ Nếu như việc nhập xuất nhiều, mất thời gian ta có thể dùng số BCD
  20. @IT ◼ Số thập phân (10) nhập vào máy sẽ được mã hóa theo dạng BCD bằng cách chuyển mỗi ký số hệ 10 thành 4bit. ◼ Sau đó tính toán trực tiếp trên mã BCD, tính toán xong chuyển ra ngoài theo dạng thập phân.
  21. @IT ◼ Biểu diễn số dạng BCD sẽ tốn kém hơn biểu diễn dạng nhị phân vì mỗi ký số BCD cần tới 4 mạch lật. ◼ Ví dụ: Số 4385 có dạng BCD là: 0100 0011 1000 0101 Mạch tính toán thập phân cũng phức tạp hơn nhưng thuận lợi là việc nhập xuất đều là thập phân.
  22. @IT ◼ Khi cộng số BCD, nếu các ký số vượt quá trị cho phép (trong khoảng từ 0000 đến 1001) hoặc có nhớ khi cộng thì phải sửa sai bằng cách cộng thêm 0110 vào ký số bị sai. ◼ Ví dụ: 27 0010 0111 +36 0011 0110 63 0101 1101 Kết quả sai 0000 0110 Sửa sai 0110 0011 Kết quả =63
  23. @IT ◼ Khi trừ số BCD, nếu có mượn khi trừ thì phải sửa sai bằng cách trừ bớt 0110 vào ký số bị sai. ◼ Ví dụ: 61 0110 0001 -38 0011 1000 23 0010 1001 Kết quả sai 0000 0110 Sửa sai 0010 0011 Kết quả =23
  24. @IT SỐ CHẤM ĐỘNG ◼ Để biểu diễn các số rất lớn hoặc rất bé, người ta dùng cách biểu diễn số khác gọi là chấm động (floating point number). ◼ Biểu diễn số chấm động gồm 4phần: - Dấu (biểu diễn số dương hoặc âm) - Định trị (mantissa) - Phần mũ (exponent) - Cơ số Ví dụ: Số thập phân 12345.67(0.1234567x105) Biểu diễn theo dạng chấm động là: +, định trị là 0.1234567, mũ là 5 và cơ số là 10
  25. @IT ◼ Trong trường hợp tổng quát, chỉ cần một bit để biểu diễn dấu S (thường là 0 biểu diễn số dương, 1 biểu diễn số âm) ◼ Nếu M là định trị, E là phần mũ và R là cơ số thì trị của số chấm động là (-1)S xMxRE ◼ Trong 4phần chỉ lưu dấu, định trị và mũ. ◼ Cơ số được lấy mặc nhiên nên không lưu.
  26. @IT ◼ Số chấm động được gọi là chuẩn hóa (normalized) khi ký số có nghĩa cao nhất khác 0. ◼ Ví dụ: số thập phân 1.35 là chuẩn hóa nhưng 0.0135 thì không. ◼ Việc chuẩn hóa cho phép lấy độ chính xác cao nhât. ◼ Không thể chuẩn hóa số 0, trong trường hợp này cả định trị và mũ đều là 0.
  27. @IT BIỂU DIỄN KÝ TỰ ◼ Ngoài việc biểu diễn số, còn cần biểu diễn các ký tự chữ cái, hay các ký tự khác. ◼ Thường dùng mã ASCII (7bit) để biểu diễn 128 ký tự gọi là mã ASCII-7 ◼ Do đơn vị lưu trữ thường là 8bit nên dùng mãASCII mở rộng (8bit) để biểu diễn 256 ký tự gồm 3vùng. 00-1F (ký tự điều kiển) 20-7F (ký tự in được) 80-FF (ký tự mở rộng)
  28. @IT 1. Cơ số của các số là bao nhiêu nếu nghiệm PT bậc 2 : X2 – 10x + 31 = 0 có nghiệm x= 5 và x = 8? 2. Lấy bù 9 các số thập phân 8 ký số 12349876; 00980100; 90009951 và 00000000
  29. @IT ◼ Thực hiện phép trừ với số thập phân không dấu bằng cách lấy bù 10 số trừ: 5250 -1321 20 – 100 1753 – 8640 1200 – 250 Thực hiện phép trừ với số nhị phân không dấu bằng cách lấy bù 10 số trừ 11010 – 10000; 100 – 110000 11010 – 1101; 1010100 - 1010100