Bài giảng Kiến trúc máy tính - Chương 2: Biểu diễn thông tin máy tính - Lê Văn Hùng

ppt 55 trang huongle 4040
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 2: Biểu diễn thông tin máy tính - Lê Văn Hùng", để 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_kien_truc_may_tinh_chuong_2_bieu_dien_thong_tin_ma.ppt

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 2: Biểu diễn thông tin máy tính - Lê Văn Hùng

  1. Kiến trúc máy tính Chương 2: Biểu diễn thông tin trong máy tính THS. Lê Văn Hùng – Khoa HTTTKT – Học viện Ngân hàng
  2. BIỂU DIỄN DỮ LIỆU VÀ SỐ HỌC MÁY TÍNH l 2.1. Các hệ thống số l 2.2. Mã hoá và lưu trữ dữ liệu trong máy tính l 2.3. Biểu diễn số nguyên l 2.4. Thực hiện các phép toán số học với số nguyên l 2.5. Số dấu chấm động l 2.6. Biểu diễn ký tự
  3. 2.1. Các hệ thống số l Hệ thập phân (Decimal System) l Con người sử dụng l Hệ nhị phân (Binary System) l Máy tính sử dụng l Hệ thập lục phân (Hexadecimal System) l Dùng để viết gọn số nhị phân l Hệ bát phân (Octal System)
  4. Hệ thập phân
  5. Hệ thập phân l Cơ số 10 l 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 l Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: l 00 000 = 0 l 99 999 = 10n - 1
  6. Hệ thập phân l 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 l Các chữ số của phần nguyên: l 472 : 10 = 47 dư 2 l 47 : 10 = 4 dư 7 l 4 : 10 = 0 dư 4 l Các chữ số của phần lẻ: l 0.38 x 10 = 3.8 phần nguyên = 3 l 0.8 x 10 = 8.0 phần nguyên = 8
  7. Hệ nhị phân
  8. Hệ nhị phân l Cơ số 2 l 2 chữ số nhị phân: 0 và 1 l Chữ số nhị phân gọi là bit (binary digit) l Bit là đơn vị thông tin nhỏ nhất l Dùng n bit có thể biểu diễn được 2n giá trị khác nhau: l 00 000 = 0 l 11 111 = 2n-1
  9. Hệ nhị phân l Có một số nhị phân A như sau: A = anan-1 a1a0.a-1 a-m l Giá trị của A được tính như sau: n n-1 0 -1 -m A = an2 + an-12 + + a02 + a-12 + + a-m2 l Ví dụ: 1101001.1 0 1 1(2) 6543210-1-2-3-4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)
  10. Hệ bát phân
  11. Hệ thập lục phân
  12. Tổng quát
  13. Chuyển đổi các hệ số
  14. Chuyển đổi các hệ số
  15. Phương pháp chuyển đổi
  16. Phương pháp chuyển đổi
  17. Biểu diễn thông tin trong hệ nhị phân l BIT (BInary digiT) : 0 1 l BYTE = tổ hợp 8 bit : 01001101 11111111 l WORD = tổ hợp nhiều bit : 10110 1011100101 l 1 KiloByte (KB) = 1024 byte l 1 MegaByte (MB) = 1024 KB l 1 GigaByte (GB) = 1024 MB
  18. 2.2 Mã hoá và lưu trữ dữ liệu trong máy tính l Nguyên tắc chung về mã hoá dữ liệu l Mọi dữ liệu đưa vào máy tính đều được mã hoá thành số nhị phân l Các loại dữ liệu l Dữ liệu nhân tạo: do con người quy ước § Dữ liệu số nguyên: mã hoá theo một số chuẩn qui ước § Dữ liệu số thực: mã hoá bằng số dấu chấm động § Dữ liệu ký tự: mã hoá theo bộ mã ký tự l Dữ liệu tự nhiên: tồn tại khách quan với con người
  19. Mã hóa thông tin đầu vào
  20. Mã hóa thông tin đầu vào
  21. Thứ tự lưu trữ các byte của dữ liệu l Bộ nhớ chính thường được tổ chức theo byte l Độ dài từ dữ liệu có thể chiếm từ một đến nhiều byte ⇒ cần phải biết thứ tự lưu trữ các byte trong bộ nhớ chính với các dữ liệu nhiều byte.
  22. Thứ tự lưu trữ các byte của dữ liệu l Có 2 cách lưu trữ: l Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn. l Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn. l Intel 80x86 và các Pentium ⇒ Little-endian l Motorola 680x0 và các bộ xử lý RISC ⇒ Big-endian l Power PC và Itanium ⇒ cả hai
  23. 2.3 Biểu diễn số nguyên l Có hai loại số nguyên: l Số nguyên không dấu (Unsigned Integer) l Số nguyên có dấu (Signed Integer) l Biểu diễn số nguyên không dấu l Dùng n bit biểu diễn số nguyên không dấu A: an-1an-2 a2a1a0 l Giá trị của A được tính như sau: l Dải biểu diễn của A: 0 -:- 2n-1 l Số 8 bit có giá trị : 0 ÷ 255 l Số 16 bit có giá trị : 0 ÷ 65 535 l Số 32 bit có giá trị : 0 ÷ 4 294 967 295
  24. Biểu diễn số nguyên không dấu n=8 bit l Biểu diễn được các giá trị từ 0 đến 255 l 0000 0000 = 0 Chú ý: l 0000 0001 = 1 1111 1111 l 0000 0010 = 2 + 0000 0001 l 0000 0011 = 3 1 0000 0000 l Vậy: 255 + 1 = 0? l 1111 1111 = 255 do tràn nhớ ra ngoài
  25. Biểu diễn số nguyên có dấu l Số bù một và Số bù hai l Giả sử A là một số nhị phân, ta có: l Số bù một của A nhận được bằng cách đảo giá trị các bit của A l (Số bù hai của A) = (Số bù một của A) + 1 l Ví dụ: với n= 8 bit l Giả sử có A = 0010 0101 l Số bù một của A = 1101 1010 + 1 l Số bù hai của A = 1101 1011 l Vì A + (Số bù hai của A) = 0 dùng số bù hai để biểu diễn cho số âm
  26. Biểu diễn số nguyên có dấu l Biểu diễn số nguyên có dấu bằng mã bù hai l Dùng n bit biểu diễn số nguyên có dấu A: an-1an-2 a2a1a0 l Qui ước: chọn bit có trọng số cao nhất (MSB) làm bit dấu l Với A là số dương: bit an-1 = 0, các bit còn lại biểu diễn độ lớn như số không dấu l Với A là số âm: được biểu diễn bằng số bù hai của số dương tương ứng, vì vậy bit an-1 = 1
  27. Biểu diễn số nguyên có dấu l Dạng tổng quát của số nguyên A: an-1an-2 a2a1a0 l Giá trị của A được xác định như sau: l Dải biểu diễn: -2n-1 ÷ 2n-1-1 l Số 8 bit có dấu có giá trị : -128 ÷ +127 l Số 16 bit có dấu có giá trị : -32768 ÷ +32767
  28. Biểu diễn số nguyên có dấu n = 8 bit l Biểu diễn được các giá trị từ -128 đến +127 l 0000 0000 = 0 l 0000 0001 = +1 l 0000 0010 = +2 Chú ý: l 0000 0011 = +3 +127 + 1 = -128 l -128 - 1 = +127 l 0111 1111 = +127 do tràn xảy ra l 1000 0000 = - 128 l 1000 0001 = - 127 l l 1111 1110 = -2 l 1111 1111 = -1
  29. Biểu diễn số nguyên có dấu l Chuyển đổi từ byte thành word l Đối với số dương: l +19 = 0001 0011 (8 bit) l +19 = 0000 0000 0001 0011 (16 bit) thêm 8 bit 0 bên trái l Đối với số âm: l - 19 = 1110 1101 (8 bit) l - 19 = 1111 1111 1110 1101 (16 bit) thêm 8 bit 1 bên trái l Với n=32 bit: biểu diễn từ -231 đến 231-1 l Với n=64 bit: biểu diễn từ -263 đến 263-1
  30. Biểu diễn số nguyên theo mã BCD Binary Coded Decimal Code l Số BCD được dùng để tính toán trên số thập phân trong hệ nhị phân. l Số BCD là số viết theo hệ 16 nhưng giá trị tính theo hệ 10. l Số 12BCD được viết trong hệ 2 là 0001 0010 nhưng có giá trị là 12 thay vì 18 (1216= 1810). l Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9 0 0000 3 0011 6 0110 9 1001 1 0001 4 0100 7 0111 2 0010 5 0101 8 1000 l Có 6 tổ hợp không sử dụng: l 1010, 1011, 1100, 1101, 1110, 1111
  31. Các kiểu lưu trữ số BCD l BCD không gói (Unpacked BCD): l Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp của mỗi byte. l Ví dụ: Số 35 được lưu trữ 2 byte: l 0011 0101 l BCD gói (Packed BCD): l Hai số BCD được lưu trữ trong 1 byte. l Ví dụ: số 35 được lưu trữ 1 byte: l 0 0 1 1 0 1 0 1
  32. Thực hiện các phép toán số học với số nguyên l Phép cộng l Phép đảo dấu l Phép đảo dấu trong máy tính thực chất là lấy bù 2 l Phép trừ l Nhân số nguyên l không dấu l có dấu l Thuật toán nhân nhanh Booth l Chia số nguyên l không dấu l có dấu
  33. Phép cộng số nguyên không dấu Khi cộng 2 số nguyên không dấu n bit, kết quả nhận được là n bit: -Nếu không có nhớ ra khỏi bít cao nhất thì kết quả nhận được luôn đúng (Cout =0). -Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận được là sai, ta nói có nhớ tràn ra ngoài (Cout = 1). - Tràn nhớ ra ngoài (carry out) xảy ra khi tổng >2n-1
  34. PHÉP ĐẢO DẤU
  35. CỘNG SỐ NGUYÊN CÓ DẤU
  36. Nguyên tắc thực hiện phép trừ
  37. Nhân số nguyên không dấu
  38. Nhân số nguyên không dấu (tiếp)
  39. Bộ nhân số không dấu
  40. Bộ nhân số không dấu
  41. NHÂN SỐ NGUYÊN CÓ DẤU
  42. CHIA 2 SỐ NGUYÊN KHÔNG DẤU
  43. CHIA 2 SỐ NGUYÊN KHÔNG DẤU Thực hiện chia từ trái sang phải như sau: -Mỗi lần lấy 1 chữ số ØNếu không chia được thì phần kết quả viết 0 vào. ØNếu chia được thì viết kết quả và nhân lại rồi trừ. - Lặp lại cho tới khi hết chữ số.
  44. CHIA 2 SỐ NGUYÊN CÓ DẤU
  45. Số dấu chấm động l Số chấm động (floating point) dùng để tính toán trên số thực. l một số thực X được biểu diễn theo kiểu số dấu chấm động như sau: X = ± m * B±e l m là phần định trị (Mantissa), l B là cơ số (base), l e là phần mũ (Exponent). l m (mantissa) quyết định độ chính xác l B (base) l e (exponent) quyết định độ lớn/nhỏ
  46. Số dấu chấm động l Một giá trị có thể biểu diễn dưới nhiều dạng l Khó xử lý l Cần chuẩn hóa
  47. Số chấm động theo chuẩn IEEE 754 (Institute of Electric & Electronic Engineers) l Cơ số 2 l Có 2 dạng l Chính xác đơn l 32 bit, độ lệch mũ (bias) 127 l Công thức tính giá trị X = (-1)S x 1.m x 2e-127 l Chính xác kép l 64 bit, độ lệch mũ (bias) 1023 l Công thức tính giá trị X = (-1)S x 1.m x 2e-1023
  48. Số chấm động theo chuẩn IEEE 754
  49. Các quy ước đặc biệt l Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0 l x000 0000 0000 0000 0000 0000 0000 0000 X= ± 0 l Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞ l x111 1111 1000 0000 0000 0000 0000 0000 X= ± ∞ l Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN – not a number)
  50. Ví dụ l Tính số thực: 0100 0010 1000 1100 1110 1001 1111 1100
  51. Biểu diễn ký tự l Bộ mã ASCII (American Standard Code for Information Interchange) l Do ANSI (American National Standard Institute) thiết kế l Bộ mã 8 bit có thể mã hóa được 28 =256 ký tự, có mã từ: 0016 ÷ FF16 , trong đó: l 128 ký tự chuẩn, có mã từ 0016 ÷ 7F16 l 128 ký tự mở rộng, có mã từ 8016 ÷ FF16 l Bộ mã Unicode
  52. Bộ mã ASCII l Các ký tự chuẩn 26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90) l ‘A’ ကÆ0100 0001 = 4116 l ‘B’ ကÆ0100 0010 = 4216 l l ‘Z’ ကÆ0101 1010 = 5A16 l 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122) l ‘a’ ကÆ0110 0001 = 6116 l ‘b’ ကÆ0110 0010 = 6216 l l ‘z’ ကÆ0111 1010 = 7A16 l 10 chữ số thập phân từ 0 đến 9 có mã từ 3016 đến 3916 (48 đến 57) l ‘0’ ကÆ0011 0000 = 3016 l ‘1’ ကÆ0011 0001 = 3116 l l ‘9’ ကÆ0011 1001 = 3916
  53. Bộ mã hợp nhất Unicode l 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ữ l Có hỗ trợ các ký tự tiếng Việt