Bài giảng Kiến trúc máy tính (Computer Architecture) - Chương 4: Số học máy tính - Nguyễn Kim Khánh

NKK-HUST  
Kiến trúc máy tính  
Chương 4  
SỐ HỌC MÁY TÍNH  
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  
NKK-HUST  
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. Số học máy tính  
Chương 5. Kiến trúc tập lệnh  
Chương 6. Bộ xử lý  
Chương 7. Bộ nhớ máy tính  
Chương 8. Hệ thống vào-ra  
Chương 9. Các kiến trúc song song  
2017  
Kiến trúc máy tính  
135  
NKK-HUST  
Nội dung chương 4  
4.1. Biểu diễn số nguyên  
4.2. Phép cộng và phép trừ số nguyên  
4.3. Phép nhân và phép chia số nguyên  
4.4. Số dấu phẩy động  
2017  
Kiến trúc máy tính  
136  
NKK-HUST  
4.1. Biểu diễn số nguyên  
n Số nguyên không dấu (Unsigned Integer)  
n Số nguyên có dấu (Signed Integer)  
2017  
Kiến trúc máy tính  
137  
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ố  
nguyên không dấu A:  
an−1an−2 ...a2a1a0  
Giá trị của A được tính như sau:  
n−1  
A = a 2i  
∑
i
i=0  
Dải biểu diễn của A: [0, 2n – 1]  
2017  
Kiến trúc máy tính  
138  
NKK-HUST  
Ví dụ 1  
n 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  
2017  
Kiến trúc máy tính  
139  
NKK-HUST  
Ví dụ 2  
n Cho các số nguyên không dấu M, N được  
biểu diễn bằng 8-bit như sau:  
n
M = 0001 0010  
N = 1011 1001  
n
Xác định giá trị của chúng ?  
Giải:  
n
M = 0001 0010 = 24 + 21 = 16 +2 = 18  
N = 1011 1001 = 27 + 25 + 24 + 23 + 20  
= 128 + 32 + 16 + 8 + 1 = 185  
n
2017  
Kiến trúc máy tính  
140  
NKK-HUST  
Với n = 8 bit  
Biểu diễn được các giá trị từ 0 đến 255 (28 - 1)  
Chú ý:  
Biểu diễn  
Giá trị  
nhị phân thập phân  
1111 1111  
0000 0000  
0000 0001  
0000 0010  
0000 0011  
0000 0100  
...  
0
1
2
3
4
+ 0000 0001  
1 0000 0000  
có nhớ ra ngoài  
(Carry out)  
255 + 1 = 0 ???  
1111 1110  
1111 1111  
254  
255  
do vượt ra khỏi dải biểu diễn  
2017  
Kiến trúc máy tính  
141  
NKK-HUST  
Trục số học với n = 8 bit  
Trục số học:  
255  
0
2
3
1
0
255  
1
Trục số học máy tính:  
254  
2
3
2017  
Kiến trúc máy tính  
142  
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)  
n
n
n
n
n
n
0000 0000 0000 0000 = 0  
...  
0000 0000 1111 1111 = 255  
0000 0001 0000 0000 = 256  
...  
1111 1111 1111 1111 = 65535  
n n= 32 bit: dải biểu diễn từ 0 đến 232 - 1  
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  
NKK-HUST  
2. Biểu diễn số nguyên có dấu  
Số bù một và Số bù hai  
n Đị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 = (2n-1) - A  
Số bù hai của A = 2n - A  
n
n Số bù hai của A = (Số bù một của A) +1  
2017  
Kiến trúc máy tính  
144  
NKK-HUST  
Ví dụ  
Với n = 8 bit, cho A = 0010 0101  
n 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  
n 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  
2017  
Kiến trúc máy tính  
145  
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  
n (Số bù hai của A) = (Số bù một của A) + 1  
n Ví dụ:  
n
Cho  
A
=
0010 0101  
1101 1010  
n
Số bù một của A =  
+
1
n
Số bù hai của A  
=
=
1101 1011  
n Nhận xét:  
A
0010 0101  
Số bù hai của A = + 1101 1011  
1 0000 0000 = 0  
(bỏ qua bit nhớ ra ngoài)  
à Số bù hai của A = -A  
Kiến trúc máy tính  
2017  
146  
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ố  
nguyên có dấu A:  
an−1an−2 ...a2a1a0  
n 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  
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  
2017  
Kiến trúc máy tính  
147  
NKK-HUST  
Ví dụ  
n 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  
2017  
Kiến trúc máy tính  
148  
NKK-HUST  
Xác định giá trị của số dương  
n Dạng tổng quát của số dương:  
0an-2 ...a2a1a0  
n Giá trị của số dương:  
n−2  
A = a 2i  
∑
i
i=0  
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  
NKK-HUST  
Xác định giá trị của số âm  
n Dạng tổng quát của số âm:  
1an−2 ...a2a1a0  
n Giá trị của số âm:  
n−2  
A = −2n−1 + a 2i  
Chứng minh?  
∑
i
i=0  
n Dải biểu diễn cho số âm: [- 2n-1, -1]  
2017  
Kiến trúc máy tính  
150  
NKK-HUST  
Công thức xác định giá trị số âm  
! = 1!!!!!!!!!! !… !!!!!!!!!!  
−! = 0!!!!!!!!!! … !!!!!!!! + 1!  
= 11 … 111 − !!!!!!!!!! !… !!!!!!!!! + 1!  
!!!  
= (2!!! − 1) −  
!!2! + 1  
!
!!!  
!−2  
!
= −2!−1 +! !!2!  
!
!=0  
2017  
Kiến trúc máy tính  
151  
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:  
an-1an-2 ...a2a1a0  
n Giá trị của A được xác định như sau:  
n−2  
A = −a 2n−1 + a 2i  
∑
n−1  
i
i=0  
n Dải biểu diễn: [-(2n-1), +(2n-1-1)]  
2017  
Kiến trúc máy tính  
152  
NKK-HUST  
Ví dụ  
n Hãy xác định giá trị của các số nguyên có dấu được  
biểu diễn theo mã bù hai với 8-bit như dưới đây:  
n
P = 0110 0010  
Q = 1101 1011  
n
Giải:  
n
P = 0110 0010 = 26 + 25 + 21 = 64 + 32 + 2 = +98  
n
Q = 1101 1011 = -27 + 26 + 24 + 23 + 21 + 20  
= -128 + 64 + 16 + 8 + 2 + 1 = -37  
2017  
Kiến trúc máy tính  
153  
Tải về để xem bản đầy đủ
pdf 60 trang baolam 20600 Free
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 (Computer Architecture) - Chương 4: Số học máy tính - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_computer_architecture_chuong_4.pdf