_________________________________________________________________Chương 6
Mch làm toán VI - 1
_______________________________________________________________
CHƯƠNG 6: MCH LÀM 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
Mch nhân cơ bn
Mch nhân ni tiếp - song song đơn gin
MCH CHIA
Mch chia phc hi s b chia
Mch chia không phc hi s b chia
___________________________________________________________________________
____
6.1 S
Cho s dương N, n bit, các s bù ca 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, bt đầu t bit LSB (tn cùng bên phi) đi ngược v bên
trái, các bit s gi nguyên cho đến lúc gp 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:
(H 6.1)
- Khi C=1, B là s bù 1 ca b (B1 và b1 là bit LSB)
Nguyn Trung Lp K THUT S
_________________________________________________________________Chương 6
Mch làm toán VI - 2
_______________________________________________________________
- Khi C=0, B là s bù 2 ca b.
Tht vy, các biu thc logic ca B theo b và C là:
CbB 11 =
)bCbB 122 += (
)bbCbB 2133
+
+= (
- 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 li, ta được:
111 b1bB ==
22122 b1b)b1bB ==+= (
332133 b1b)bb1bB ==++= (
- Khi C=0
111 b0bB ==
12122 bb)b0bB
=
+= (
= b2 nếu b1=0 và 2
b nếu b1 = 1
)b(bb)bb(0bB 2132133
+
=
++=
= b3 nếu b1 và b2 đều =0
= 3
b nếu (b1 và/hoc b2 = 1)
Như vy tt c các bit sau bit 1 th nht tính t bit LSB đều b đảo và B chính là s
2 ca b
Chúng ta cũng có th thiết kế mch to s bù hai bng cách dùng FF RS, có ngã vào
R, S tác động mc cao, kết hp vi các cng logic như (H 6.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.
(H 6.2)
Bt đầu, Preset mch để 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 m cho xung đồng h đi qua, FF RS
được reset, Q = 0, Q = 1, G2 đóng, G3 m, s B đi qua cng G2 và b đảo. ngã ra được s
bù 2 ca B.
6.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)
a/ - AB
Nguyn Trung Lp K THUT S
_________________________________________________________________Chương 6
Mch làm toán VI - 3
_______________________________________________________________
Kết qu A-B là s 0 hoc âm, phép tính được thc hin 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 bng cách cng s bù 1 ca B vào A ri ly bù 1 ca tng và thêm
du tr . Như vy để thc hin phép tính tr ta ch cn dùng phép cng 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 thp 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
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.
b/ - 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 cui cùng, ta được kết qu A-B =001111.
Trong h thp phân đó là bài toán 5310 - 3810 = 1510.
Nguyn Trung Lp K THUT S
_________________________________________________________________Chương 6
Mch làm toán VI - 4
_______________________________________________________________
Trong phép tính có s tràn chng t kết qu s dương. S 1 cng thêm vào xem như
ly t s nh đem qua.
Tóm li, để 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 thêm du
- để đọc.
- Nếu s tràn =1, ta cng thêm 1 vào để có kết qu cui cùng (b qua bit tràn) là mt
s dương.
6.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 cng 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/ - A<B
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 bng cách cng s bù 2 ca B vào A ri ly bù 2 ca tng và thêm
du tr. Như vy 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 nhn 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
b/ - 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 qu mà không phi
biến đổi: 001111 = 1510
Nguyn Trung Lp K THUT S
_________________________________________________________________Chương 6
Mch làm toán VI - 5
_______________________________________________________________
Thí d 8 : Tính 10110 - 10110
A = 10110 và B = 10110 (B)2 = 01010
B qua s tràn ta được A-B =00000.
6.4 Phép toán vi s có du
Cho ti gi chúng ta thc hin các phép toán vi s không du và đôi khi xut hin
du tr trong kết qu. Trong máy tính, điu này có th khc phc được bng cách dùng s
du.
Vi qui ước s dương có bit du là 0 và s âm có du là 1
Thí d 9: +1010 = 01010 +1510 = 01111 +2310 = 010111
-1010 = 10110 - 1510 = 10001 - 2310 = 101001
Có th thy rng s âm ca mt s là s bù 2 ca nó k c bit du.
Vi cách biu din s có du, phép toán tr tr thành phép toán cng:
A-B = A+(-B )
Thí d 10: Tính A-B =01110 - 01001; B = 01001 = +910 - 910 = 10111
Bit du =0 ch kết qu dương, b bit tràn C’2.
Vy A-B = 00101 [(+1410 )-(+910)] = +510
Nếu A hoc B đều dương hoc âm , kết qu có th cn thêm mt bit do tràn s. Trong
trường hp này bit tràn đầu tiên thuc kết qu và C’2 là bit du
Thí d 11: Tính A+B vi A = 01110 (+1410) và B = 01001 (+910)
Kết qu là 010111 = +2310 vi C’2 = 0 là bit du
Nguyn Trung Lp K THUT S