Bài giảng kỹ thuật số 1
Biên soạn Ks Ngô Văn Bình
Trang 130
CHƯƠNG 7: CÁC PHÉP TOÁN NH PHÂN VÀ
CÁC MCH PHÉP TOÁN
S
PHÉP TR S NH PHÂN DÙNG S BÙ 1
PHÉP TR S NH PHÂN DÙNG S BÙ 2
PHÉP TOÁN VI S CÓ DU
MCH CNG
Bán phn
Toàn phn
Cng hai s nhiu bít
MCH TR
Bán phn
Toàn phn
Tr hai s nhiu bit
Cng & tr hai s nhiu bit trong mt mch
MCH NHÂN
Mạch nhân cơ bản
Mch nhân ni tiếp - song song đơn giản
MCH CHIA
Mch chia phc hi s b chia
Mch chia không phc hi s b chia
7.1 S
Cho sdương N, n bit, các s bù của N được định nghĩa:
S bù 2: (N)2 = 2n - N (s 2n gm bit 1 và n bit 0 theo sau)
S bù 1: (N)1 = (N)2 -1 = 2n - N - 1
Thí d 1: N = 1010
S bù 2 ca N là (N)2 = là 10000 - 1010 = 0110
Và s bù 1 ca N là (N)1 = 0110 - 1 = 0101
Thí d 2: N = 110010101100 (N)2 = 001101010100 và (N)1 = 001101010011
Nhn xét:
- Để có s bù 2 ca mt s, bắt đầu t bit LSB (tn cùng bên phải) đi ngược v bên
trái, các bit s giữ nguyên cho đến lúc gặp bit 1 đầu tiên, sau đó đảo tt c các bit còn li.
- Để có s bù 1 ca mt số, ta đảo tt c các bit ca sđó.
T các nhn xét trên ta có th thc hin mt mch to số bù 1 và 2 sau đây:
Bài giảng kỹ thuật số 1
Biên soạn Ks Ngô Văn Bình
Trang 131
(H 7.1)
- Khi C=1, B là s bù 1 ca b (B1 và b1 bit LSB)
- Khi C=0, B là s bù 2 ca b.
Tht vy, các biu thc logic ca B theo b và C là:
- Khi C=1 , các ngã ra cng OR luôn bng 1, các cng EX - OR luôn có mt ngã vào
bng 1 nên ngã ra là đảo ca ngã vào còn lại, ta được:
- Khi C=0
= b2 nếu b1=0 và b2 nếu b1 = 1
= b3 nếu b1 và b2 đều =0
=
b
3 nếu (b1 và/hoc b2 = 1)
Như vậy tt c các bit sau bit 1 th nht tính từ bit LSB đều bị đảo và B chính là s bù 2
ca b
Chúng ta cũng có th thiết kế mch to shai bng cách dùng FF RS, có ngã vào R, S
tác động mc cao, kết hp vi các cổng logic như (H 7.2). Mch này dùng khá tin li khi
cn thc hin bài toán cng và tr nhiu bit kiu ni tiếp.
Bài giảng kỹ thuật số 1
Biên soạn Ks Ngô Văn Bình
Trang 132
(H 7.2)
Bắt đầu, Preset mạch để ngã ra Q = 1, cng G3 đóng, G2 m, cho số B đi qua mà không bị
đảo cho đến khi có bit 1 đầu tiên đến, cng G1 mcho xung đồng hồ đi qua, FF RS được
reset, Q = 0,
Q
= 1, G2 đóng, G3 m, số B đi qua cổng G2 và bị đo. ngã ra được s
2 ca B.
7.2 Phép tr s nh phân dùng s bù 1:
Cho hai số dương A và B có n bit (nếu s bit khác nhau, ta thêm s 0 vào , mà không làm
thay đổi trị, để c hai có cùng s bit)
AB
Kết qu A-B là s 0 hoặc âm, phép tính được thc hiện như sau:
Tính A - B:
A - B = A-B+2n-1-2n+1
= A+(2n -B -1 ) - 2n+1
= A+(B )1 - 2n+1
= - {2n - [A+(B )1] -1}
= - [A+(B )1]1
Vy A-B có được bng cách cng s1 ca B vào A ri ly bù 1 ca tng và thêm du
trừ . Như vậy để thc hin phép tính tr ta ch cn dùng phép cộng và phép đảo
Thí d 3 : Tính 1001 - 11010 dùng s bù 1
Ta có A = 01001 (thêm số 0 vào để có 5 bit như số B
B = 11010 (B)1 = 00101
A-B = - [A+(B )1]1 = - (01001+00101) =- (01110)1
= - (10001)
Trong h thập phân, đây là bài toán 910 - 2610 = -1710
Để thy du trđược nhn ra như thế nào, ta viết li phép toán:
Không có s tràn (hay s tràn =0) là du hiu ca kết qu âm (hoc =0) và ta phi ly bù
1, thêm du trừ để đọc kết qu cui cùng: (01110)1 = - 10001
Bài giảng kỹ thuật số 1
Biên soạn Ks Ngô Văn Bình
Trang 133
Thí d 4: Tính 10110 - 10110
A = 10110 và B = 10110 (B)1 = 01001
Trong phép cng đầu tiên không có s tràn, kết qu xem như số âm (hoc =0) ly bù 1
ca kết quả ta được A-B =00000.
A >B
Kết qu A-B là số dương, phép tính được thc hin theo qui tc sau:
Cng A vi (B)1 ri thêm 1 và không quan tâm ti s nh cui cùng
Thí d 5: Tính 110101 - 100110 dùng s bù 1
A = 110101 và B = 100110 (B)1 = 011001
B qua s nh cuối cùng, ta được kết qu A-B =001111.
Trong h thập phân đó là bài toán 5310 - 3810 = 1510.
Trong phép tính có s tràn chng t kết qu là sdương. Số 1 cộng thêm vào xem như lấy
t s nh đem qua.
Tóm lại, để thc hin bài toán tr, A-B, ta cng A vi bù 1 ca B. Da vào s có mt hay
không ca s tràn mà có bin pháp x lý kết qu:
- Nếu s tràn =0, kết qu là s âm (hoc =0) , ta phi ly bù 1 ca kết qu và thêm
du - để đọc.
- Nếu s tràn =1, ta cộng thêm 1 vào đkết qu cui cùng (b qua bit tràn) là mt
số dương.
7.3 phép tr s nh phân dùng s bù 2:
Phép toán dùng s bù 1 có mt bt tin là ta phi thêm bài toán cộng 1 vào, để tránh vic
này ta dùng phép toán vi s bù 2
Cho hai số dương A và B có n bit
A<B
Bài giảng kỹ thuật số 1
Biên soạn Ks Ngô Văn Bình
Trang 134
Tính A-B:
A-B = A-B+2n-2n
= A+(2n - B ) - 2n
= A+(B )2 - 2n
= - {2n - [A+(B )2] }
= - [A+(B )2]2
Vy A-B có được bng cách cng s2 ca B vào A ri ly bù 2 ca tng và thêm du
trừ. Như vậy ta đã chuyn phép tính tr thành phép cng
Thí d 6: Tính 1001 - 11010 dùng s bù 2
Ta có A = 01001 (thêm s 0 vào để có 5 bit như số B)
B = 11010 (N2)2 = 00110
A-B = - [A+(B )2]2 = - (01001+00110) =- (01111)2
= - (10001)
Ta được li kết qu trên
Để thy du trừ được nhận ra như thế nào, ta viết li phép toán:
Không có s tràn là du hiu ca kết qu âm và ta phi ly bù 2, thêm du trđể đọc kết
qu cui cùng: (01111)2 = - 10001
A B
Kết qu A-B là 0 hoc số dương, phép tính được thc hin theo qui tc sau:
Cng A vi (B)2 và không quan tâm ti s nh v trí 2n
Thí d 7 : Tính 110101 - 100110 dùng s bù 2
A = 110101 và B = 100110 (B)2 = 011010
Có s tràn, kết qu là số dương. B qua số tràn và đọc ngay kết qukhông phi biến
đổi: 001111 = 1510
Thí d 8 : Tính 10110 - 10110
A = 10110 và B = 10110 (B)2 = 01010