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 đủ
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:
bai_giang_kien_truc_may_tinh_computer_architecture_chuong_4.pdf

