Bài giảng Kiến trúc máy tính - Chương 5: Số học máy tính
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 5: Số học 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:
- bai_giang_kien_truc_may_tinh_chuong_5_so_hoc_may_tinh.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 5: Số học máy tính
- NKK-HUT Kiến trúc máy tính Chương 5 SỐ HỌC MÁY TÍNH Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 26 May 2012 IT3030 1
- NKK-HUT Nội dung học phần Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính Chương 4. Kiến trúc tập lệnh Chương 5. Số học máy tính Chương 6. Bộ xử lý Chương 7. Bộ nhớ Chương 8. Vào-ra Chương 9. Kiến trúc máy tính tiên tiến 2626 May May 2012 2012 IT3030 2
- NKK-HUT Nội dung chương 5 5.1. Biểu diễn số nguyên 5.2. Phép cộng và phép trừ số nguyên 5.3. Phép nhân 5.4. Phép chia 5.5. Số dấu phẩy động 26 May 2012 IT3030 3
- NKK-HUT 5.1. Biểu diễn số nguyên Số nguyên không dấu (Unsigned Integer) Số nguyên có dấu (Signed Integer) 26 May 2012 IT3030 4
- NKK-HUT 1. Biểu diễn số nguyên không dấu Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A: a n 1 a n 2 a 2 a 1 a 0 Giá trị của A được tính như sau: n 1 A a 2 i i i 0 Dải biểu diễn của A: từ 0 đến 2n – 1 26 May 2012 IT3030 5
- NKK-HUT 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 26 May 2012 IT3030 6
- NKK-HUT Các ví dụ (tiếp) Ví dụ 2. Cho các số nguyên không dấu M, N được biểu diễn bằng 8-bit như sau: M = 0001 0010 N = 1011 1001 Xác định giá trị của chúng ? Giải: 4 1 M = 0001 0010 = 2 + 2 = 16 +2 = 18 7 5 4 3 0 N = 1011 1001 = 2 + 2 + 2 + 2 + 2 = 128 + 32 + 16 + 8 + 1 = 185 26 May 2012 IT3030 7
- NKK-HUT Với n = 8 bit Biểu diễn được các giá trị từ 0 đến 255 0000 0000 = 0 Chú ý: 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 Vậy: 255 + 1 = 0 ? do tràn nhớ ra 1111 1111 = 255 ngoài 26 May 2012 IT3030 8
- NKK-HUT Trục số học với n = 8 bit Trục số học: 0 1 2 3 255 Trục số học máy tính: 255 0 1 254 2 3 26 May 2012 IT3030 9
- NKK-HUT Với n = 16 bit, 32 bit, 64 bit 16 n= 16 bit: dải biểu diễn từ 0 đến 65535 (2 – 1) 0000 0000 0000 0000 = 0 0000 0000 1111 1111 = 255 0000 0001 0000 0000 = 256 1111 1111 1111 1111 = 65535 32 n= 32 bit: dải biểu diễn từ 0 đến 2 - 1 64 n= 64 bit: dải biểu diễn từ 0 đến 2 - 1 26 May 2012 IT3030 10
- NKK-HUT 2. Biểu diễn số nguyên có dấu Số bù chín và Số bù mười Cho một số thập phân A được biểu diễn bằng n chữ số thập phân, ta có: n Số bù chín của A = (10 -1) – A n Số bù mười của A = 10 – A Số bù mười của A = (Số bù chín của A) +1 26 May 2012 IT3030 11
- NKK-HUT Số bù chín và Số bù mười (tiếp) Ví dụ: với n=4, cho A = 3265 Số bù chín của A: 9999 (104-1) - 3265 (A) 6734 Số bù mười của A: 1 0000 (104) - 3265 (A) 6735 26 May 2012 IT3030 12
- NKK-HUT Số bù một và Số bù hai Định nghĩa: Cho một số nhị phân A được biểu diễn bằng n bit, ta có: n Số bù một của A = (2 -1) – A n Số bù hai của A = 2 – A Số bù hai của A = (Số bù một của A) +1 26 May 2012 IT3030 13
- NKK-HUT Số bù một và Số bù hai (tiếp) Ví dụ: với n = 8 bit, cho A = 0010 0101 Số bù một của A được tính như sau: 1111 1111 (28-1) - 0010 0101 (A) 1101 1010 đảo các bit của A Số bù hai của A được tính như sau: 1 0000 0000 (28) - 0010 0101 (A) 1101 1011 thực hiện khó khăn 26 May 2012 IT3030 14
- NKK-HUT Quy tắc tìm Số bù một và Số bù hai Số bù một của A = đảo giá trị các bit của A (Số bù hai của A) = (Số bù một của A) + 1 Ví dụ: Cho A = 0010 0101 Số bù một = 1101 1010 + 1 Số bù hai = 1101 1011 Nhận xét: A = 0010 0101 Số bù hai = + 1101 1011 1 0000 0000 = 0 (bỏ qua bit nhớ ra ngoài) Số bù hai của A = -A 26 May 2012 IT3030 15
- NKK-HUT Biểu diễn số nguyên có dấu bằng mã bù hai Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên có dấu A: a n 1 a n 2 a 2 a 1 a 0 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 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 26 May 2012 IT3030 16
- NKK-HUT Biểu diễn số dương Dạng tổng quát của số dương A: 0 a n 2 a 2 a 1 a 0 Giá trị của số dương A: n 2 i A a i 2 i 0 n-1 Dải biểu diễn cho số dương: 0 đến 2 -1 26 May 2012 IT3030 17
- NKK-HUT Biểu diễn số âm Dạng tổng quát của số âm A: 1a n 2 a 2 a 1 a 0 Giá trị của số âm A: n 2 A 2 n 1 a 2 i i i 0 n-1 Dải biểu diễn cho số âm: -1 đến -2 26 May 2012 IT3030 18
- NKK-HUT Biểu diễn tổng quát cho số nguyên có dấu Dạng tổng quát của số nguyên A: a n 1 a n 2 a 2 a 1 a 0 Giá trị của A được xác định như sau: n 2 A a 2 n 1 a 2 i n 1 i i 0 n-1 n-1 Dải biểu diễn: từ -(2 ) đến +(2 -1) 26 May 2012 IT3030 19
- NKK-HUT 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 = +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: B = -80 = 1011 0000 26 May 2012 IT3030 20
- NKK-HUT Các ví dụ 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 dưới đây: P = 0110 0010 Q = 1101 1011 Giải: P = 0110 0010 = 64+32+2 = +98 Q = 1101 1011 = -128+64+16+8+2+1 = -37 26 May 2012 IT3030 21
- NKK-HUT Với n = 8 bit Biểu diễn được các giá trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chú ý: 0000 0011 = +3 +127 + 1 = -128 -128 - 1 = +127 0111 1111 = +127 do tràn xảy ra 1000 0000 = - 128 1000 0001 = - 127 1111 1110 = -2 1111 1111 = -1 26 May 2012 IT3030 22
- NKK-HUT Trục số học số nguyên có dấu với n = 8 bit Trục số học: -128 -2 -1 0 1 2 +127 Trục số học máy tính: -1 0 +1 -2 +2 -3 +3 -128 +127 26 May 2012 IT3030 23
- NKK-HUT Với n = 16 bit, 32 bit, 64 bit Với n=16bit: biểu diễn từ -32768 đến +32767 0000 0000 0000 0000 = 0 0000 0000 0000 0001 = +1 0111 1111 1111 1111 = +32767 1000 0000 0000 0000 = -32768 1111 1111 1111 1111 = -1 31 31 Với n=32bit: biểu diễn từ -2 đến 2 -1 63 63 Với n=64bit: biểu diễn từ -2 đến 2 -1 26 May 2012 IT3030 24
- NKK-HUT Chuyển đổi từ 8 bit thành 16 bit Đối với số dương: +19 = 0001 0011 (8bit) +19 = 0000 0000 0001 0011 (16bit) thêm 8 bit 0 bên trái Đối với số âm: - 19 = 1110 1101 (8bit) - 19 = 1111 1111 1110 1101 (16bit) thêm 8 bit 1 bên trái 26 May 2012 IT3030 25
- NKK-HUT 5.2. Thực hiện phép cộng/trừ với số nguyên 1. Phép cộng số nguyên không dấu Bộ cộng n-bit Y X n bit n bit C out Cin Bé céng n-bit n bit S 26 May 2012 IT3030 26
- NKK-HUT Nguyên tắc cộng số nguyên không dấu Khi cộng hai số nguyên không dấu n-bit, kết quả nhận được là n-bit: Nếu Cout=0 nhận được kết quả đúng. Nếu Cout=1 nhận được kết quả sai, do tràn nhớ ra ngoài (Carry Out). n Tràn nhớ ra ngoài khi: tổng > (2 – 1) 26 May 2012 IT3030 27
- NKK-HUT Ví dụ cộng số nguyên không dấu 57 = 0011 1001 + 34 = + 0010 0010 91 0101 1011 = 64+16+8+2+1=91 đúng 209 = 1101 0001 + 73 = + 0100 1001 282 1 0001 1010 0001 1010 = 16+8+2=26 sai có tràn nhớ ra ngoài (Cout=1) Để có kết quả đúng ta thực hiện cộng theo 16-bit: 209 = 0000 0000 1101 0001 + 73 = + 0000 0000 0100 1001 0000 0001 0001 1010 = 256+16+8+2 = 282 26 May 2012 IT3030 28
- NKK-HUT 2. Phép đảo dấu Ta có: + 37 = 0010 0101 bù một = 1101 1010 + 1 bù hai = 1101 1011 = -37 Lấy bù hai của số âm: - 37 = 1101 1011 bù một = 0010 0100 + 1 bù hai = 0010 0101 = +37 Kết luận: Phép đảo dấu số nguyên trong máy tính thực chất là lấy bù hai 26 May 2012 IT3030 29
- NKK-HUT 3. Cộng số nguyên có dấu Khi cộng hai số nguyên có dấu n-bit, kết quả nhận được là n-bit và không cần quan tâm đến . bit Cout Cộng hai số khác dấu: kết quả luôn luôn đúng. Cộng hai số cùng dấu: nếu dấu kết quả cùng dấu với các số hạng thì kết quả là đúng. nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra (Overflow) và kết quả bị sai. Tràn xảy ra khi tổng nằm ngoài dải biểu diễn: [ -(2n-1),+(2n-1-1)] 26 May 2012 IT3030 30
- NKK-HUT Ví dụ cộng số nguyên có dấu không tràn ( + 70) = 0100 0110 + ( + 42) = 0010 1010 + 112 0111 0000 = +112 (+ 97) = 0110 0001 + (- 52) = 1100 1100 (+52=0011 0100) + 45 1 0010 1101 = +45 ( - 90) = 1010 0110 (+90=0101 1010) + ( +36) = 0010 0100 - 54 1100 1010 = - 54 ( - 74) = 1011 0110 (+74=0100 1010) +( - 30) = 1110 0010 (+30=0001 1110) -104 1 1001 1000 = -104 26 May 2012 IT3030 31
- NKK-HUT Ví dụ cộng số nguyên có dấu bị tràn ( + 75) = 0100 1011 +( + 82) = 0101 0010 +157 1001 1101 = - 128+16+8+4+1= -99 sai ( - 104) = 1001 1000 (+104=0110 1000) + ( - 43) = 1101 0101 (+ 43 =0010 1011) - 147 1 0110 1101 = 64+32+8+4+1= +109 sai Cả hai ví dụ đều tràn vì tổng nằm ngoài dải biểu diễn [-128, +127] 26 May 2012 IT3030 32
- NKK-HUT 4. Nguyên tắc thực hiện phép trừ Phép trừ hai số nguyên: X-Y = X+(-Y) Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X n-bit Y n-bit X Bï hai Bé céng n-bit n-bit S= X-Y 26 May 2012 IT3030 33
- NKK-HUT 5.3. Thực hiện phép nhân Nhân số nguyên không dấu 1011 Số bị nhân (11) x 1101 Số nhân (13) 1011 0000 Các tích riêng phần 1011 1011 10001111 Tích (143) 26 May 2012 IT3030 34
- NKK-HUT Nhân số nguyên không dấu (tiếp) Các tích riêng phần được xác định như sau: Nếu bit của số nhân bằng 0 tích riêng phần bằng 0. Nếu bit của số nhân bằng 1 tích riêng phần bằng số bị nhân. Tích riêng phần tiếp theo được dịch trái một bit so với tích riêng phần trước đó. Tích bằng tổng các tích riêng phần Nhân hai số nguyên n-bit, tích có độ dài 2n bit (không bao giờ tràn). 26 May 2012 IT3030 35
- NKK-HUT Bộ nhân số nguyên không dấu Sè bÞ nh©n Mn-1 Mn-2 . . . M1 M0 §iÒu khiÓn céng Bé logic ®iÒu khiÓn Bé céng n-bit céng vµ dÞch §iÒu khiÓn dÞch ph¶i C An-1 An-2 . . . A1 A0 Qn-1 Qn-2 . . . Q1 Q0 Sè nh©n 26 May 2012 IT3030 36
- NKK-HUT Lưu đồ nhân số nguyên không dấu B¾t ®Çu C 0, A 0 M Sè bÞ nh©n Q Sè nh©n Bé ®Õm := n No Yes Q0 = 1 ? C,A A+M DÞch ph¶i C,A,Q Bé ®ÕmBé ®Õm-1 No Bé ®Õm = 0 ? Yes KÕt thóc TÝch trong AQ 26 May 2012 IT3030 37
- NKK-HUT Ví dụ nhân số nguyên không dấu Số bị nhân M = 1011 (11) Số nhân Q = 1101 (13) Tích = 1000 1111 (143) C A Q 0 0000 1101 Các giá trị khởi đầu + 1011 0 1011 1101 A A + M 0 0101 1110 Dịch phải 0 0010 1111 Dịch phải + 1011 0 1101 1111 A A + M 0 0110 1111 Dịch phải + 1011 1 0001 1111 A A + M 0 1000 1111 Dịch phải 26 May 2012 IT3030 38
- NKK-HUT Ví dụ nhân số nguyên không dấu Số bị nhân M = 0010 (2) Số nhân Q = 0011 (3) Tích = 0000 0110 (6) C A Q 0 0000 0011 Các giá trị khởi đầu + 0010 0 0010 0011 A A + M 0 0001 0001 Dịch phải + 0010 0 0011 0001 0 0001 1000 Dịch phải 0 0000 1100 Dịch phải 0 0000 0110 Dịch phải 26 May 2012 IT3030 39
- NKK-HUT Nhân số nguyên có dấu Sử dụng thuật giải nhân không dấu Sử dụng thuật giải Booth 26 May 2012 IT3030 40
- NKK-HUT Sử dụng thuật giải nhân không 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 thuật giải 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 (lấy bù hai). 26 May 2012 IT3030 41
- NKK-HUT Thuật giải Booth ( xem sách COA-WS) 26 May 2012 IT3030 42
- NKK-HUT 5.4. Thực hiện phép chia Chia số nguyên không dấu Số bị chia 10010011 1011 Số chia 1011 00001101 Thương 001110 1011 001111 1011 100 Phần dư 26 May 2012 IT3030 43
- NKK-HUT Bộ chia số nguyên không dấu Sè chia M Mn-1 Mn-2 . . . M1 M0 §iÒu khiÓn céng/trõ Bé logic ®iÒu khiÓn Bé céng/trõ n-bit céng/trõ vµ dÞch §iÒu khiÓn dÞch tr¸i An-1 An-2 . . . A1 A0 Qn-1 Qn-2 . . . Q1 Q0 Sè bÞ chia Q 26 May 2012 IT3030 44
- NKK-HUT Lưu đồ chia số nguyên không dấu B¾t ®Çu A 0 M Sè chia Q Sè bÞ chia Bé ®Õm n DÞch tr¸i A,Q A A - M No Yes A < 0 ? Q 0 Q 1 0 0 A A + M Bé ®ÕmBé ®Õm-1 No Bé ®Õm = 0 ? Yes Th•¬ng ë Q KÕt thóc Sè d• ë A 26 May 2012 IT3030 45
- NKK-HUT Chia số nguyên có dấu Bước 1. Chuyển đổi số bị chia và số chia về thành số dương tương ứng. Bước 2. Sử dụng thuật giải chia số nguyên không dấu để chia hai số dương, kết quả nhận được là thương Q và phần dư R đều là dương Bước 3. Hiệu chỉnh dấu của kết quả như sau: (Lưu ý: phép đảo dấu thực chất là thực hiện phép lấy bù hai) Số bị chia Số chia Thương Số dư dương dương giữ nguyên giữ nguyên dương âm đảo dấu giữ nguyên âm dương đảo dấu đảo dấu âm âm giữ nguyên đảo dấu 26 May 2012 IT3030 46
- NKK-HUT 5.5. Số dấu phẩy động 1. Nguyên tắc chung Floating Point Number biểu diễn cho số thực 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). 26 May 2012 IT3030 47
- NKK-HUT 2. Chuẩn IEEE754/85 Cơ số R = 2 Các dạng: Dạng 32-bit Dạng 44-bit Dạng 64-bit Dạng 80-bit 26 May 2012 IT3030 48
- NKK-HUT Các dạng biểu diễn chính 31 30 23 22 0 S e m 63 62 52 51 0 S e m 79 78 64 63 0 S e m 26 May 2012 IT3030 49
- NKK-HUT Dạng 32 bit 31 30 23 22 0 S e m S là bit dấu: S = 0 số dương S = 1 số âm e (8 bit) là mã excess-127 của phần mũ E: e = E+127 E = e – 127 giá trị 127 gọi là là độ lệch (bias) m (23 bit) là phần lẻ của phần định trị M: M = 1.m Công thức xác định giá trị của số thực: S e-127 X = (-1) *1.m * 2 26 May 2012 IT3030 50
- NKK-HUT Ví dụ 1 Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau: 1100 0001 0101 0110 0000 0000 0000 0000 S = 1 số âm e = 1000 00102 = 130 E = 130-127=3 Vậy 3 X = -1.10101100 * 2 = -1101.011 = -13.375 0011 1111 1000 0000 0000 0000 0000 0000 = ? = +1.0 26 May 2012 IT3030 51
- NKK-HUT Ví dụ 2 Biểu diễn số thực X= 83.75 về dạng số dấu phẩy động IEEE754 32-bit Giải: 6 X = 83.75(10) = 1010011.11(2) = 1.01001111 x 2 Ta có: S = 0 vì đây là số dương E = e-127 = 6 e = 127 + 6 = 133(10) = 1000 0101(2) Vậy: X = 0100 0010 1010 0111 1000 0000 0000 0000 26 May 2012 IT3030 52
- NKK-HUT Ví dụ 3 Biểu diễn số thực X= -0,2 về dạng số dấu phẩy động IEEE754 32-bit Giải: X = -0,2(10) = - 0.00110011 0011 (2) = = - 1.100110011 0011 x 2-3 Ta có: S = 1 vì đây là số âm E = e-127 = -3 e = 127 -3 = 124(10) = 0111 1100(2) Vậy: X = 1011 1110 0100 1100 1100 1100 1100 1100 26 May 2012 IT3030 53
- NKK-HUT Bài tập Biểu diễn các số thực sau đây về dạng số dấu phẩy động IEEE754 32-bit: X = - 27.0625; Y = 1/32 26 May 2012 IT3030 54
- NKK-HUT Các qui ước đặc biệt Các bit của e bằng 0, các bit của m bằng 0, thì X = 0 x000 0000 0000 0000 0000 0000 0000 0000 X = 0 Các bit của e bằng 1, các bit của m bằng 0, thì X = x111 1111 1000 0000 0000 0000 0000 0000 X = Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN - not a number) 26 May 2012 IT3030 55
- NKK-HUT Dải giá trị biểu diễn -127 +127 2 đến 2 -38 +38 10 đến 10 -2+127 -2-127 0 +2-127 +2+127 26 May 2012 IT3030 56
- NKK-HUT Dạng 64-bit S là bit dấu e (11 bit): mã excess-1023 của phần mũ E E = e – 1023 m (52 bit): phần lẻ của phần định trị M Giá trị số thực: S e-1023 X = (-1) *1.m * 2 -308 +308 Dải giá trị biểu diễn: 10 đến 10 26 May 2012 IT3030 57
- NKK-HUT Dạng 80-bit S là bit dấu e (15 bit): mã excess-16383 của phần mũ E E = e – 16383 m (64 bit): phần lẻ của phần định trị M Giá trị số thực: S e-16383 X = (-1) *1.m * 2 -4932 +4932 Dải giá trị biểu diễn: 10 đến 10 26 May 2012 IT3030 58
- NKK-HUT 3.Thực hiện phép toán số dấu phẩy động E1 X1 = M1 * R E2 X2 = M2 * R Ta có E1+E2 X1 * X2 = (M1* M2) * R E1-E2 X1 / X2 = (M1 / M2) * R E1-E2 E2 X1 X2 = (M1*R M2) * R , với E2 E1 26 May 2012 IT3030 59
- NKK-HUT Các khả năng tràn số Tràn trên số mũ (Exponent Overflow): mũ dương vượt ra khỏi giá trị cực đại của số mũ dương có thể. ( ∞) Tràn dưới số mũ (Exponent Underflow): mũ âm vượt ra khỏi giá trị cực đại của số mũ âm có thể ( 0). Tràn trên phần định trị (Mantissa Overflow): cộng hai phần định trị có cùng dấu, kết quả bị nhớ ra ngoài bit cao nhất. Tràn dưới phần định trị (Mantissa Underflow): Khi hiệu chỉnh phần định trị, các số bị mất ở bên phải phần định trị. 26 May 2012 IT3030 60
- NKK-HUT Phép cộng và phép trừ Kiểm tra các số hạng có bằng 0 hay không Hiệu chỉnh phần định trị Cộng hoặc trừ phần định trị Chuẩn hoá kết quả 26 May 2012 IT3030 61
- NKK-HUT Thuật toán cộng/trừ số dấu phẩy động Trõ §æi dÊu cña Y N N Y Céng cã dÊu KÕt qu¶ Y Lµm trßn Céng X = 0 ? Y = 0 ? PhÇn mò b»ng nhau ? phÇn ®Þnh trÞ chuÈn ho¸? kÕt qu¶ Y Y N N Y Z Y Z X T¨ng phÇn mò Z 0 ®Þnh trÞ = 0 ? DÞch ph¶i Trë vÒ nhá h¬n phÇn ®Þnh trÞ Trë vÒ Trë vÒ N DÞch ph¶i §Þnh trÞ N Gi¶m phÇn mò phÇn ®Þnh trÞ bÞ trµn ? Y N DÞch ph¶i Y = 0 ? N PhÇn mò phÇn ®Þnh trÞ bÞ trµn d•íi ? Y CÊt sè kia T¨ng phÇn mò Y vµo Z Trë vÒ B¸o trµn d•íi Trë vÒ Y PhÇn mò N B¸o trµn bÞ trµn ? Trë vÒ 26 May 2012 IT3030 62
- NKK-HUT Thuật toán nhân số dấu phẩy động Nh©n N N X = 0 ? Y = 0 ? Céng phÇn mò Y Y Trõ cho ®é lÖch Z 0 Trë vÒ Trµn trªn Y Th«ng b¸o phÇn mò ? trµn trªn N Trµn d•íi Y Th«ng b¸o phÇn mò ? trµn d•íi N Nh©n phÇn Trë vÒ ®Þnh trÞ ChuÈn ho¸ Lµm trßn Trë vÒ 26 May 2012 IT3030 63
- NKK-HUT Thuật toán chia số dấu phẩy động Chia N N X = 0 ? Y = 0 ? Trõ phÇn mò Y Y Céng thªm Z 0 Z ®é lÖch Trë vÒ Trµn trªn Y Th«ng b¸o phÇn mò ? trµn trªn N Y Trµn d•íi Th«ng b¸o phÇn mò ? trµn d•íi N Chia phÇn Trë vÒ ®Þnh trÞ ChuÈn ho¸ Lµm trßn Trë vÒ 26 May 2012 IT3030 64
- NKK-HUT Hết chương 5 26 May 2012 IT3030 65
- NKK-HUT Giải bài tập 4 X = -27.0625(10) = -11011.0001(2) = -1.10110001 x 2 Ta có: S = 1 E = e-127 = 4 e = 127 + 4 = 131(10) = 1000 0011(2) Vậy: X = 1100 0001 1101 1000 1000 0000 0000 0000 -5 Y = 1/32(10) = 1.0 x 2 Ta có: S = 0 E = e-127 = -5 e = 127 -5 = 12210) = 0111 1010(2) Vậy: X = 0011 1101 0000 0000 0000 0000 0000 0000 26 May 2012 IT3030 66