3.4.Các phép tắnh s* hZc cho h nh[ phân

Một phần của tài liệu Giáo tình kiến trúc máy tính của thầy Vũ Đức Lung (Trang 45 - 50)

Các phép tắnh C&ng, TrX, Nhân, Chia cũng ựưKc sG dCng trong sP hMc Nh' phân, vi c tắnh toán cC th ựưKc th`c hi n theo quy tec sau:

3.4.1. Phép cCng hai s nh) phân không dEu:

C&ng nh' phân ựưKc th`c hi n theo quy tec D b!ng 3.4 Chú ý:

i Khi c&ng, th`c hi n tX bit có trMng sP th0p ự n bit cú trMng sP cao.

i N u có sP nh; thì sP nh; sinh ra ựưKc c&ng vào bit cú trMng sP cao hơn li_n k_

SJ H\NG 1 SJ H\NG 2 T]NG SJ NH^ KGT QU_

0 0 0 0 0

0 1 1 0 1

1 0 1 0 1

1 1 0 1 10

B!ng 3.4. Quy tec C&ng Nh' phân cho 2 sP 1 bit. Vắ d': Th`c hi n các phép C&ng Nh' phân:

1011 +1100 10111

3.4.2. Phép tr: hai s nh) phân không dEu:

Phép trX nh' phân ựưKc th`c hi n theo quy tec trình bày D B!ng 3.5

SJ B` TRa SJ TRa HIEU SJ SJ VAY

0 0 0 0

0 1 1 1

1 0 1 0

1 1 0 0

B!ng 3.5. Quy tec trX Nh' phân cho 2 sP 1 bit. Chú ý:

i Phép tắnh ựưKc th`c hi n tX Bit có trMng sP th0p ự n Bit có trMng sP cao.

i SP vay s[ ựưKc trX vào Bit có trMng sP cao hơn D li_n k_.

Vắ d': Th`c hi n các tắnh TrX Nh' phân sau: 1011

Chương III: Bi u di n d li u

i0110 0101

Tuy nhiên trong th`c t , máy tắnh không tắnh toán ki u ựó mà chuy n ựYi phép trX thành phép c&ng v;i s bù 2 cBa nó. Phương pháp này trong máy tắnh ựưKc cho là hi u qu! hơn và dJ dàng thi t k phSn c.ng cho nó hơn. SP bù có hai lo%i thư ng dùng là sP bù 1 và sP bù 2.

3.4.3. Phép nhân và chia hai s nh) phân không dEu:

Phép nhân nh' phân ựưKc th`c hi n như nhân thQp phân. Vắ dC: Có phép tắnh: 1001 nhân v;i 1101 Ta th`c hi n: 1001(SP b' nhâniMultiplicant) x 1101(SP nhâniMultiplier ) 1001 0000 + 1001 1001 K t qu! là: 1110101

Phép chia nh' phân ựưKc th`c hi n như chia thQp phân. Vắ dC: Có phép tắnh: 1110101 chia cho 1001 Ta th c hi n: 1110101 : 1001 i 1001 1101 01011 i 1001 001001 1001 0000 K t qu!: 1111010 : 1001 = 1101 Chương III: Bi u di n d li u

3.4.4. Bi0u diIn s nguyên có dEu

Có ba cách ự bi u diJn m&t sP nguyên n bit có d0u ựó là bi u diJn bLng tr' tuy t ựPi và d0u, bi u diJn bLng sP bù 1, bi u diJn bLng sP bù 2.

Cách thông thư ng nh0t là bi u diJn bLng tr' tuy t ựPi và d0u, trong trư ng hKp này thì bit cao nh0t luôn tưKng trưng cho d0u.

Khi ựó, bit d0u có giá tr' là 0 thì sP ựó là nguyên dương, bit d0u có giá tr' là 1 thì sP ựó là nguyên âm. Tuy nhiên, cách bi u diJn d0u này không ựúng trong trư ng hKp sP ựưKc bi u diJn bLng sP thXa K mà ta s[ xét D phSn sau trong chương này.

SP nguyên có bit dni1 là bit d0u và có tr' tuy t ựPi bi u diJn bDi các bit tX d0 t;i dni2 .

Vắ dC: dùng 8 bit bi u diJn sP +25 và i25 dư;i d%ng d0u và tr' tuy t ựPi.

Ta bi t 2510 = 110012. Dùng 8 bit ự bi u diJn sP, như vQy 1 bit bi u diJn d0u, còn 7 bits bi u diJn giá tr' cBa sP ựó.

VQy +25 = 0 0011001 Bit d0u

VQy i25 = 1 0011001 Bit d0u

Như vQy, theo cách này thì: +2510 = 000110012 i2510 = 100110012

i M&t Byte (8 bit) có th bi u diJn các sP có d0u tX i127 t;i +127. i Có hai cách bi u diJn sP không là 0000 0000 (+0) và 1000 0000 (i0).

Hai cách bi u diJn còn l%i ta s[ xem xét trong phSn ti p dư;i ựây.

3.4.5. S bù cLa mCt s

SP bù ựưKc dùng trong máy tắnh sP giúp ựơn gi!n phép toán trX và các thao tác logic. Trong h cơ sP (h ự m) r có hai d%ng sP bù: SP bù r và sP bù (ri1). Như vQy trong h 10 s[ có bù 10 và bù 9, trong h 8 có bù 8 và bù 7, trong h 16 có bù 16 và bù 15, trong h 2 có bù 2 và bù 1.

S* bù r31 cha mit s*:

Gi! sG N là m&t sP có n ký sP trong h thPng sP r thì bù r 1 cBa N = (rn Ờ 1) Ờ N.

Vắ dC ựPi v;i h thQp phân ta có bù r 1 = bù 9 cBa sP thQp phân N là (10n 1) Ờ N. Trong ựó 10n là m&t sP ghm sP 1 và theo sau là n cha sP 0 (vắ dC 104 = 10000). VQy (10ni1) là ghm n sP 9 (vắ dC 104 i1 = 9999). VQy bù 9 cBa N là m&t con sP nhQn ựưKc bLng cách l0y trX 9 cho tXng ký sP cBa N.

Vắ dC:

Bù 9 cBa 43520 là 99999 Ờ 43520 = 56479 S* bù r cha mit s*:

SP bù r cBa m&t sP ựưKc tắnh bLng bù r 1 c&ng v;i 1. Như vQy bù 10 cBa 43520 là 56478 + 1 = 56480. TX ựây ta có th tắnh nhanh bù 10 theo qui tec:

i Gia nguyên các ký sP 0 bên ph!i cho ự n khi gRp ký sP khác 0

i L0y 10 trX ựi ký sP ựSu tiên khác 0 ựó i L0y 9 trX ựi các sP còn l%i

Vắ dC: Bù 10 cBa 347200 là 652800

Chúng ta s[ chB y u làm vi c v;i h nh' phân, do máy tắnh làm vi c v;i h này. Trong h nh' phân s[ có bù 1 và bù 2 mà ta s[ xem xét sau ựây.

S* bù 1 cha mit s*:

SP bù 1 cBa m&t sP nh' phân (hay còn gMi là sP invert) là m&t sP nh' phân có ựưKc bLng cách ựYi các bit 1 thành 0 và bit 0 thành 1. Vắ dC:

SP cSn ựYi 10110101 1100110 SP bù 1 cBa nó 10001010 0011001

S* bù 2 cha mit s*: SP bù hai cBa m&t sP là sP bù 1 cBa sP ựó c&ng thêm 1. Vắ d': SP: 01001110 00110101 SP bù m&t cBa nó là: 10110001 11001010 C&ng thêm 1 +1 +1 Bù hai cBa nó là: 10110010 11001011

Quy t4c chung tìm bù hai cLa mCt s :

i MuPn tìm bù 2 cBa m&t sP ta ựi tX bit có trMng sP nhs nh0t ngưKc lên.

i Khi nào gRp ựưKc bit 1 ựSu tiên thì gia nguyên các sP 0 bên ph!i sP 1 ựó và c! sP 1 ựó naa, còn t0t c! các bắt bên trái sP 1 ựó thì ự!o l%i.

Vắ dC:

SP: 01100100 10010010 1101000 01100111 SP bù 2 là: 10011100 01101110 0011000 10011001

Sau khi ta ựã bi t v_ sP bù 1 và bù 2 cBa m&t sP nh' phân, ta xem cách bi u diJn m&t sP nguyên có d0u theo hai cách này.

Chương III: Bi u di n d li u

đPi v;i sP dương thì bi u diJn giPng d0u và tr' tuy t ựPi

đPi v;i sP âm thì ựưKc bi u diJn dư;i d%ng bit d0u và giá tr' cBa sP ựó D d%ng bù 1.

Vắ dC: Dùng 8 bit bi u diJn sP +25 và i25 dư;i d%ng bù 1.

Ta bi t 2510 = 110012. Dùng 8 bit ự bi u diJn sP, như vQy 1 bit bi u diJn d0u, còn 7 bits bi u diJn giá tr' cBa sP ựó, n u là sP âm thì l0y bù 1 các bit này.

VQy +25 = 0 0011001 Bit d0u

VQy i25 = 1 1100110 Bit d0u

Ta cũng có th hi u là sP âm ựưKc bi u diJn bLng cách l0y bù 1 cBa sP dương k c! bit d0u.

S* nguyên có dlu ựư c bi u di n m dnng bù 2 là:

đPi v;i sP dương thì bi u diJn giPng d0u và tr' tuy t ựPi

đPi v;i sP âm thì ựưKc bi u diJn dư;i d%ng bit d0u và giá tr' cBa sP ựó D d%ng bù 2.

Vắ dC: Dùng 8 bit bi u diJn sP +25 và i25 dư;i d%ng bù 2.

Ta bi t 2510 = 110012. Dùng 8 bit ự bi u diJn sP, như vQy 1 bit bi u diJn d0u, còn 7 bits bi u diJn giá tr' cBa sP ựó, n u là sP âm thì l0y bù 2 các bit này.

VQy +25 = 0 0011001 Bit d0u

VQy i25 = 1 1100111 Bit d0u

Chú ý: S dương bi0u diIn O c 3 cách là như nhau, chQ khác nhau khi ựó là s âm

Chương III: Bi u di n d li u

3.4.6. Phép cCng tr: nh) phân dùng bù 1

SP có d0u ựưKc bi u diJn bLng bù 1 theo qui tec sau:

i Bắt l;n nh0t (MSB) là bắt d0u, trong ựó 0 là sP dương và 1 là sP âm

i Các bắt còn l%i bi u diJn tr' th`c cBa sP dương hoRc tr' bù 1 cBa sP âm.

Vắ dC: Dùng 6 bit ghm c! bắt d0u ự bi u diJn sP 17 = 010001 26 = 011010 i17 = 101110 i26 = 100101

Th`c hi n phép c&ng giPng như c&ng các sP nh' phân không d0u, c&ng c! bit d0u. CSn lưu ý m&t ựi m nhs là c&ng sP nh; cBa bit l;n nh0t vào bit cuPi cùng (LSB).

Vắ dC: 13 001101 i13 110010 + + + + 11 001011 i11 110100 ____ ______ ____ ______ 24 011000 i24 100110 + 1 ______ 100111 Trong k t qu! n u bit d0u là 0 thì dãy bit sau bit d0u là giá tr' k t qu!, còn n u bit d0u là âm thì dãy bit sau bit d0u m;i là k t qu! D d%ng bù m&t. MuPn bi t giá tr' th`c cBa k t qu! ta ph!i l0y bù 1 cBa k t qu! m&t lSn naa. Như trong vắ dC trên k t qu! cBa phép c&ng th. nh0t là 011000 có bit d0u là 0, vQy giá tr' th`c cBa k t qu! là +11000 = +24. Còn phép c&ng th. hai có k t qu! là 100111 có bit d0u là 1, vQy giá tr' th`c cBa k t qu! là Ờ(bù 1 cBa 00111) = i11000 = i24.

3.4.7.Phép cCng tr: nh) phân dùng bù 2

SP có d0u ựưKc bi u diJn bLng bù 2 theo qui tec sau:

i Bắt l;n nh0t (MSB) là bắt d0u, trong ựó 0 là sP dương và 1 là sP âm

i Các bắt còn l%i bi u diJn tr' th`c cBa sP dương hoRc tr' bù 2 cBa sP âm.

Th`c hi n phép c&ng giPng như c&ng các sP nh' phân không d0u, c&ng c! bit d0u. CSn lưu ý lo%i bs bit nh; cuPi cùng trong k t qu!. Vắ dC: i12 110100 + i9 110111 ___ ______ i21 1 101011

K t qu! có bit d0u bLng 1, vQy k t qu! là sP âm và dãy bit m;i chj là bù 2 cBa k t qu!. MuPn có k t qu! thQt ta l0y Bù 2 m&t lSn naa. Trong vắ dC trên k t qu! không tắnh ự n bit nh; (bs bit nh;) là 101011 có bit d0u bLng 1 là m&t sP âm, t.c là k t qu! m;i bi u diJn D d%ng bù 2. MuPn bi t giá tr' thQt cBa k t qu! ta ph!i l0y bù 2 m&t lSn naa. T.c là 101011 = i (bù 2 cBa 01011) = i (10101) = i21. đPi v;i phép trX ta th`c hi n thông qua phép c&ng.

3A = bù 2 cha A A Ờ B = A + (3B) = A + (bù 2 cha B) Vắ d' 1: 13 Ờ 6 = 13 + (i6) 6 = 00000110 i6 = 11111010 13 = 00001101 = 1 00000111 (7) Vắ d' 2: Th`c hi n phép tắnh: 0111 Ờ 0101 Ta th`c 0111 chuy n 0111 hi n: thành i0101 +1011 (SP bù 2 cBa 0101) 10010 Suy ra k t qu! là 0010 Vắ d' 3: Th`c hi n phép tắnh: 0101 Ờ 0111 Ta th`c hi n: 0101(5) Chuy n thành 0101 i0111(i7) +1001 (SP bù 2 cBa 0111) 1110 3.5. S* quá n (excess3n)

SP quá n hay còn gMi là sP thXa n cBa m&t sP N có ựưKc bLng cách Ộc&ng thêmỢ sP N v;i sP quá n, sP n ựưKc chMn sao cho tYng cBa n và m&t sP âm b0t kỳ luôn luôn dương.

Quy t@c chung:

Bi u diJn quá n cBa N = bi u diJn nguyên dương cBa (N + n)

Vắ d.:

Bi u diJn (quá 127) cBa 7 là:

Chương III: Bi u di n d li u

Cách bi u diJn sP nguyên có d0u bLng sP bù 2 ựưKc dùng r&ng rãi cho các phép tắnh sP nguyên. Nó có lKi là không cSn thuQt toán ựRc bi t nào cho các phép tắnh c&ng và tắnh trX, và giúp phát hi n dJ dàng các trư ng hKp b' tràn.

Các cách bi u diJn bLng "d0u , tr' tuy t ựPi" hoRc bLng "sP bù 1" drn ự n vi c dùng các thuQt toán ph.c t%p và b0t lKi vì luôn có hai cách bi u diJn cBa sP không.

Cách bi u diJn bLng "d0u , tr' tuy t ựPi" ựưKc dùng cho phép nhân cBa sP có d0u ch0m ự&ng.

Cách bi u diJn bLng sP quá n ựưKc dùng cho sP mũ cBa các sP có d0u ch0m ự&ng. Cách này làm cho vi c so sánh các sP mũ có d0u khác nhau trD thành vi c so sánh các sP nguyên dương.

3.6. Cách bi u di n s* vpi dlu chlm ựing

đ bi u diJn các con sP r0t l;n hoRc r0t bé, ngư i ta ngư i ta dùng m&t cách bi u diJn sP gMi là sP ch0m ự&ng (floating point number). Trư;c khi ựi vào cách bi u diJn sP v;i d0u ch0m ự&ng, chúng ta xét ự n cách bi u diJn m&t sP dư;i d%ng d0u ch0m xác ự'nh.

Vắ dC:

i Trong h thQp phân, sP 25410 có th bi u diJn dư;i các d%ng sau:

254 * 100; 25.4 * 101; 2.54 * 102; 0.254 * 103; 0.0254 * 104; Ầ i Trong h nh' phân, sP (0.00011)2 (tương ựương v;i sP i Trong h nh' phân, sP (0.00011)2 (tương ựương v;i sP 0.0937510) có th bi u diJn dư;i các d%ng :

0.00011 * 20 ; 0.0011 * 2i1; 0.011 * 2i2; 0.11 * 2i3; 1.1 * 2i4; Ầ Các cách bi u diJn này gây khó khăn trong m&t sP phép so sánh các sP. đ dJ dàng trong các phép tắnh, các sP ựưKc chuẤn hoá v_ m&t d%ng bi u diJn:

Một phần của tài liệu Giáo tình kiến trúc máy tính của thầy Vũ Đức Lung (Trang 45 - 50)

Tải bản đầy đủ (PDF)

(143 trang)