- Trang Chủ
- Phần cứng
- Bài giảng Kiến trúc máy tính (Computer Architecture): Chương 4 - Nguyễn Kim Khánh
Xem mẫu
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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