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. Nội dung chính trong chương này gồm có: Các hệ đếm cơ bản, biểu diễn số nguyên, các phép toán số học đối với số nguyên, số dấu phẩy động. Mời các bạn tham khảo.
KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH (Computer Organization and Architecture) Chương Biểu diễn thơng tin máy tính bangtqh@utc2.edu.vn Nội dung Các hệ đếm Biểu diễn số nguyên Các phép toán số học số nguyên Số dấu phẩy động bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 2.1 Các hệ đếm 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 - Biểu diễn thơng tin máy tính Hệ thập phân (Decimal System) Cơ số 10 Dùng 10 ký số: 0, 1, 2, , Dùng n chữ số thập phân biểu diễn 10n giá trị khác nhau: • 00 = • 99 = 10n – bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính Hệ thập phân (tt) Quy tắc đếm bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính Ví dụ 215.37 = 2*102 + 1*101 + 5*100 + 3*10-1 + 7*10-2 Các chữ số phần nguyên: 215 : 10 = 21 21 : 10 = 2 : 10 = dư dư dư Các chữ số phần thập phân: 0.37 * 10 = 3.7 0.7 * 10 = 7.0 bangtqh@utc2.edu.vn phần nguyên = phần nguyên = Chương - Biểu diễn thơng tin máy tính Hệ nhị phân (Binary System) Cơ số Dùng chữ số: 0, Chữ số nhị phân gọi bit (binary digit) Bit đơn vị thông tin nhỏ Dùng n chữ số nhị phân biểu diễn 2n giá trị khác nhau: 00 = 11 = 2n - bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính Hệ nhị phân (tt) bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính Hệ nhị phân (tt) Quy tắc đếm bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính Ví dụ Có số nhị phân sau: 1011 1001.101(2) Khi đó, giá trị chúng tính là: 1011 1001.101(2) = = 27 + 25 + 24 + 23 + 20 + 2-1 + 2-3 = 128 + 32 + 16 + + + 0.5 + 0.125 = 185.625(10) bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 10 Hệ Bát phân (Octal System) Cơ số Dùng chữ số: 0, 1, 2, 3, 4, 5, 6, Dùng n chữ số bát phân biểu diễn 8n giá trị khác nhau: • 00 = • 77 = 8n – bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 11 Hệ bát phân (tt) Quy tắc đếm bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 12 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: nhóm bit thay chữ số Hexa Dùng n chữ số Hexa biểu diễn 16n giá trị khác nhau: • 00 = • FF F = 16n - bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 13 Hệ thập lục phân (tt) Quy tắc đếm bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 14 Tổng quát bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 15 Chuyển đổi hệ đếm bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 16 Bảng mã 8421 bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 17 Chuyển đổi tổng quát bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 18 Phương pháp ghép nhóm bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin 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 lấy phần dư – Cách 2: Phân tích thành tổng luỹ thừa 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 - Biểu diễn thơng tin máy tính 20 Ví dụ 3: x = 21 A 0000 Q(SN) 0011 Q-1 M(SBN) 0111 Khởi tạo Count = 1001 1100 0011 1001 0111 0111 A←A-M SHR A, Q, Q-1 Lần 1, Count = 1110 0100 0111 SHR A, Q, Q-1 Lần 2, Count = 0101 0010 0100 1010 0111 0111 A←A+M SHR A, Q, Q-1 Lần 3, Count = 0001 0101 0111 SHR A, Q, Q-1 Lần 4, Count = Kết quả: 0001 0101 bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 53 2.3 Các phép tốn số nguyên (tt) Phép chia số nhị phân Nạp số chia vào ghi M số bị chia vào ghi A, Q Số bị chia phải dạng 2n bit, vậy, ví dụ số bit 0111 trở thành 00000111 1001 trở thành 11111001 Dịch trái A, Q bit Nếu M A có dấu, thực gán A←A-M, ngược lại gán A ← A+M thao tác thành công dấu A trước sau thao tác a Nếu thao tác thành công (A=0 Q=0) đặt Q0 ← b Nếu thao tác không thành công (A≠0 Q ≠ 0) đặt Q0 ← khơi phục giá trị trước A Lặp lại bước đến bước số lần lặp số bit Q Phần dư A Nếu dấu số chia số bị chia giống thương Q, ngược lại thương số bù Q bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin máy tính 54 Thuật tốn chia số nhị phân Bé ®Õm := n M chøa sè chia (n bit) A,Q chứa số bị chia (2n bit) Start Dịch trái A,Q ®i bit B := A §óng M, A cïng dÊu? A := A - M Sai A := A + M A, B cïng dÊu hc A = Q = 0? §óng Q0 = Sai Q0 = 0; A := B Dec(Bé ®Õm) Sai bangtqh@utc2.edu.vn Bé ®Õm = 0? §óng End Chương - Biểu diễn thơng tin máy tính 55 Ví dụ 1: 12 : = 3, dư A Q M = 0100 (sè chia) 0000 1100 Khởi tạo giá trị (số chia bị chia dấu) 0001 1000 Dịch trái bit A, Q M cïng dÊu A → A := A - M 1101 0001 1000 A kh¸c dÊu sau trõ → Q0 = vµ phơc håi A 0011 0000 Dịch trái bit A, Q M dấu A → A := A - M 1110 0011 0000 A kh¸c dÊu sau trõ → Q0 = phục hồi A 0110 0000 Dịch trái bit A, Q M cïng dÊu A → A := A - M 0010 0010 0001 A cïng dÊu sau trừ Q0 = 0100 0010 Dịch trái bit A, Q M cïng dÊu A → A := A – M 0000 0000 0011 bangtqh@utc2.edu.vn A cïng dÊu sau trõ → Q0 = A chøa d, Q chøa th¬ng Chương - Biểu diễn thơng tin máy tính 56 Ví dụ 2: 13 : (-4) = -3, dư A Q M = 1100 (sè chia) 0000 1101 Khởi tạo giá trị (số chia bị chia khác dấu) 0001 1010 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 1101 0001 1010 A kh¸c dÊu sau céng → Q0 = vµ phơc håi A 0011 0100 Dịch trái bit A, Q M khác dấu A → A := A + M 1111 0011 0100 A kh¸c dÊu sau céng → Q0 = phục hồi A 0110 1000 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 0010 0010 1001 A cïng dÊu sau cộng Q0 = 0101 0010 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 0001 0001 0011 bangtqh@utc2.edu.vn A cïng dÊu sau céng → Q0=1 A chøa d, Q chøa bï cđa th¬ng Chương - Biểu diễn thơng tin máy tính 57 Ví dụ 3: (-11) : = (-3), dư (-2) A Q M = 0011 (số chia) 1111 0101 Khởi tạo giá trị (số chia bị chia khác dấu) 1110 1010 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 0001 1110 1010 A kh¸c dÊu sau céng → Q0 = vµ phơc håi A 1101 0100 Dịch trái bit A, Q M khác dÊu A → A := A + M 0000 1101 0100 A kh¸c dÊu sau céng → Q0 = phục hồi A 1010 1000 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 1101 1101 1001 A cïng dÊu sau cộng Q0 = 1011 0010 Dịch trái bit A, Q M kh¸c dÊu A → A := A + M 1110 1110 0011 bangtqh@utc2.edu.vn A cïng dÊu sau céng → Q0=1 A chøa d, Q chøa bï cđa th¬ng Chương - Biểu diễn thơng tin máy tính 58 Ví dụ 4: (-14) : (-6) = 2, dư (-2) A Q M = 1010 (số chia) 1111 0010 Khởi tạo giá trị (số chia bị chia dấu) 1110 0100 Dịch trái bit A, Q M cïng dÊu A → A := A - M 0100 1110 0100 A kh¸c dÊu sau trõ → Q0 = vµ phơc håi A 1100 1000 Dịch trái bit A, Q M cïng dÊu A → A := A - M 0000 1100 1000 A kh¸c dÊu sau trõ → Q0 = phục hồi A 1001 0000 Dịch trái bit A, Q M cïng dÊu A → A := A + M 1111 1111 0001 A cïng dÊu sau céng → Q0 = 1110 0010 DÞch tr¸i bit A, Q M cïng dÊu A → A := A - M 0100 1110 0010 bangtqh@utc2.edu.vn A kh¸c dÊu sau céng → Q0= A chøa d, Q chøa cđa th¬ng Chương - Biểu diễn thơng tin 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 số thực – Một số thực X biểu diễn theo kiểu dấu phẩy động sau: = ± ∗ ± – Với: • m phần định trị (mantissa) • B số (base) • e phần mũ (exponent) – Mantissa định độ xác – Exponent định độ lớn/nhỏ số bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 60 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ó chuẩn hóa bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 61 Chuẩn IEEE 754/85 Số dấu phẩy động xác đơn (single precision) – Sử dụng 32 bit, độ lệch mũ (bias) = 127 – Cơng thức tính giá trị: −1 ∗ ∗2 Số dấu phẩy động 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 ∗ ∗2 Số dấu phẩy động xác kép mở rộng (doubleextended precision) – Sử dụng 80 bit, độ lệch mũ (bias) = 16383 – Cơng thức tính giá trị: −1 bangtqh@utc2.edu.vn ∗ ∗2 Chương - Biểu diễn thông tin máy tính 62 Chuẩn IEEE 754/85 (32 bit) 31 30 23 22 S (dÊu) E (phÇn mị) bit bit M (phần định trị) 23 bit Khi ú, số thực biểu diễn: X = −1 ∗ ∗ Dải giá trị biểu diễn: 2-127 < X < 2127, hay: 10-38 < X < 1038 bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin 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 dạng: ±1,aa a * 2b Bước 3: Xác định giá trị: S = số dương; S = số âm E – 127 = b ⇒ E = 127 + b → nhị phân M = aa a00 23 bit bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 64 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 * 24 (±1.aa a * 2b) – Bước 3: • S = (vì A > 0) • E – 127 = ⇒ E = 131 = 1000 0011 • M = 000 1101 0000 0000 0000 0000 ⇒ A = 0100 0001 1000 1101 0000 0000 0000 0000 = 41 8D 00 00H bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin 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 * 26 (±1,aa a * 2b) – Bước 3: • S = 1, B < • E – 127 = ⇒ E = 133 = 1000 0101 • M = 110 0000 1010 0000 0000 0000 ⇒ A = 1100 0010 1110 0000 1010 0000 0000 0000 = C2 E0 A0 00H bangtqh@utc2.edu.vn Chương - Biểu diễn thơng tin máy tính 66 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, C < • E – 127 = -2 ⇒ E = 125 = 0111 1100 • M = 001 1000 0000 0000 0000 0000 ⇒ A = 1011 1110 0001 1000 0000 0000 0000 0000 = BE 18 00 00H bangtqh@utc2.edu.vn Chương - Biểu diễn thông tin 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 = = 1100 0010 0000 1101 0000 0000 0000 0000 –S=1⇒X