Xem mẫu

  1. NKK-HUST Kiến trúc máy tính om .c Chương 4 ng co SỐ HỌC MÁY TÍNH an th o ng du u cu Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 2017 Kiến trúc máy tính 134 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  2. NKK-HUST Nội dung học phần Chương 1. Giới thiệu chung om .c Chương 2. Cơ bản về logic số ng Chương 3. Hệ thống máy tính co Chương 4. Số học máy tính an Chương 5. Kiến trúc tập lệnh th Chương 6. Bộ xử lý o ng du Chương 7. Bộ nhớ máy tính u Chương 8. Hệ thống vào-ra cu Chương 9. Các kiến trúc song song 2017 Kiến trúc máy tính 135 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  3. NKK-HUST Nội dung chương 4 om 4.1. Biểu diễn số nguyên .c 4.2. Phép cộng và phép trừ số nguyên ng co 4.3. Phép nhân và phép chia số nguyên an 4.4. Số dấu phẩy động th o ng du u cu 2017 Kiến trúc máy tính 136 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  4. NKK-HUST 4.1. Biểu diễn số nguyên om .c n Số nguyên không dấu (Unsigned Integer) ng Số nguyên có dấu (Signed Integer) co n an th o ng du u cu 2017 Kiến trúc máy tính 137 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  5. NKK-HUST 1. Biểu diễn số nguyên không dấu n Nguyên tắc tổng quát: Dùng n bit biểu diễn số om nguyên không dấu A: .c an−1an−2 ... a2 a1a0 ng co an Giá trị của A được tính như sau: th o ng n−1 A = ∑ ai 2 i du u i=0 cu Dải biểu diễn của A: [0, 2n – 1] 2017 Kiến trúc máy tính 138 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  6. NKK-HUST Ví dụ 1 Biểu diễn các số nguyên không dấu sau đây om n bằng 8-bit: .c A = 41 ; B = 150 ng co Giải: an A = 41 = 32 + 8 + 1 = 25 + 23 + 20 th 41 = 0010 1001 o ng du B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21 u cu 150 = 1001 0110 2017 Kiến trúc máy tính 139 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  7. NKK-HUST Ví dụ 2 n Cho các số nguyên không dấu M, N được om biểu diễn bằng 8-bit như sau: .c M = 0001 0010 ng n co n N = 1011 1001 an Xác định giá trị của chúng ? th Giải: o ng du n M = 0001 0010 = 24 + 21 = 16 +2 = 18 u cu n N = 1011 1001 = 27 + 25 + 24 + 23 + 20 = 128 + 32 + 16 + 8 + 1 = 185 2017 Kiến trúc máy tính 140 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  8. NKK-HUST Với n = 8 bit Biểu diễn được các giá trị từ 0 đến 255 (28 - 1) om Chú ý: Biểu diễn Giá trị .c 1111 1111 nhị phân thập phân ng 0000 0000 0 co + 0000 0001 0000 0001 1 an 1 0000 0000 th 0000 0010 2 có nhớ ra ngoài o ng 0000 0011 3 du (Carry out) 0000 0100 4 u 255 + 1 = 0 ??? ... cu do vượt ra khỏi dải biểu diễn 1111 1110 254 1111 1111 255 2017 Kiến trúc máy tính 141 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  9. NKK-HUST Trục số học với n = 8 bit Trục số học: om 0 1 2 3 255 .c ng 255 0 co Trục số học máy tính: 254 1 2 an 3 th o ng du u cu 2017 Kiến trúc máy tính 142 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  10. NKK-HUST Với n = 16 bit, 32 bit, 64 bit n n= 16 bit: dải biểu diễn từ 0 đến 65535 (216 - 1) om n 0000 0000 0000 0000 = 0 .c n ... ng 0000 0000 1111 1111 = 255 co n 0000 0001 0000 0000 = 256 an n th n ... n 1111 1111 1111 1111 o ng = 65535 du u n n= 32 bit: dải biểu diễn từ 0 đến 232 - 1 cu n n= 64 bit: dải biểu diễn từ 0 đến 264 - 1 2017 Kiến trúc máy tính 143 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  11. NKK-HUST 2. Biểu diễn số nguyên có dấu Số bù một và Số bù hai om .c n Định nghĩa: Cho một số nhị phân A ng được biểu diễn bằng n bit, ta có: co an n Số bù một của A = (2n-1) - A th n Số bù hai của A o ng = 2n - A du n Số bù hai của A = (Số bù một của A) +1 u cu 2017 Kiến trúc máy tính 144 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  12. NKK-HUST Ví dụ Với n = 8 bit, cho A = 0010 0101 om n Số bù một của A được tính như sau: .c 1111 1111 (28 - 1) ng - 0010 0101 (A) co 1101 1010 an à đảo các bit của A th n o ng Số bù hai của A được tính như sau: 1 0000 0000 (28) du u - 0010 0101 (A) cu 1101 1011 à thực hiện khó khăn 2017 Kiến trúc máy tính 145 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  13. NKK-HUST Quy tắc tìm Số bù một và Số bù hai n Số bù một của A = đảo giá trị các bit của A om n (Số bù hai của A) = (Số bù một của A) + 1 .c n Ví dụ: ng Cho A = 0010 0101 co n n Số bù một của A = 1101 1010 an + 1 th Số bù hai của A = 1101 1011 n ng Nhận xét: o n du A = 0010 0101 u Số bù hai của A = + 1101 1011 cu 1 0000 0000 = 0 (bỏ qua bit nhớ ra ngoài) à Số bù hai của A = -A 2017 Kiến trúc máy tính 146 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  14. NKK-HUST Biểu diễn số nguyên có dấu theo mã bù hai Nguyên tắc tổng quát: Dùng n bit biểu diễn số om nguyên có dấu A: .c ng an−1an−2 ... a2 a1a0 co an Với A là số dương: bit an-1 = 0, các bit còn lại th n ng biểu diễn độ lớn như số không dấu o du n Với A là số âm: được biểu diễn bởi số bù hai của số dương tương ứng, vì vậy bit an-1 = 1 u cu 2017 Kiến trúc máy tính 147 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  15. NKK-HUST Ví dụ n Biểu diễn các số nguyên có dấu sau đây bằng 8-bit: om A = + 58 ; B = - 80 .c Giải: ng co A = + 58 = 0011 1010 an th B = - 80 Ta có: + 80 o ng = 0101 0000 du Số bù một = 1010 1111 u + 1 cu Số bù hai = 1011 0000 Vậy: B = - 80 = 1011 0000 2017 Kiến trúc máy tính 148 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  16. NKK-HUST Xác định giá trị của số dương n Dạng tổng quát của số dương: om 0 an-2 ... a2 a1 a0 .c ng co n Giá trị của số dương: an th n−2 o ng A = ∑ ai 2 i du i=0 u cu n Dải biểu diễn cho số dương: [0, +(2n-1 - 1)] 2017 Kiến trúc máy tính 149 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  17. NKK-HUST Xác định giá trị của số âm n Dạng tổng quát của số âm: om 1an−2 ... a2 a1a0 .c ng co n Giá trị của số âm: an th n−2 A = −2 o ng n−1 + ∑ ai 2 i Chứng minh? du i=0 u cu n Dải biểu diễn cho số âm: [- 2n-1, -1] 2017 Kiến trúc máy tính 150 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  18. NKK-HUST Công thức xác định giá trị số âm ! = 1!!!!! !!!!! !… !!! !!! !!! ! om −! = 0!!!!! !!!!! … !! !!! !!! + 1! .c ng = 11 … 111 − !!!!! !!!!! !… !!! !!! !!! + 1! co an th !!! = (2!!! − 1) − o ng !! 2! + 1! du !!! u !−2 cu !−1 ! ! = −2 +! !! 2 ! !=0 2017 Kiến trúc máy tính 151 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  19. NKK-HUST Công thức tổng quát cho số nguyên có dấu n Dạng tổng quát của số nguyên có dấu A: om an-1an-2 ... a2 a1a0 .c ng co n Giá trị của A được xác định như sau: an n−2 th A = −an−1 2 o ng n−1 + ∑ ai 2 i du i=0 u cu n Dải biểu diễn: [-(2n-1), +(2n-1-1)] 2017 Kiến trúc máy tính 152 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  20. NKK-HUST Ví dụ Hãy xác định giá trị của các số nguyên có dấu được om n biểu diễn theo mã bù hai với 8-bit như dưới đây: .c ng n P = 0110 0010 co n Q = 1101 1011 an th Giải: n o ng P = 0110 0010 = 26 + 25 + 21 = 64 + 32 + 2 = +98 du n Q = 1101 1011 = -27 + 26 + 24 + 23 + 21 + 20 u cu = -128 + 64 + 16 + 8 + 2 + 1 = -37 2017 Kiến trúc máy tính 153 CuuDuongThanCong.com https://fb.com/tailieudientucntt
nguon tai.lieu . vn