CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
Operatii cu numere reprezentate in diferite forme de reprezentare
Adunarea si scaderea numerelor binare
reprezentate in complement fata de 2 si fata de 1.
Introducem 2 notiuni:
transport spre cifra de semn.
transport din cifra semn.
In cazul numerelor fara semn nu poate apare decit cazul depasirii capacitatii, spre deosebire de numerele cu semn cind pot apare ambele situatii. Este evident ca adunarea sau scaderea a doua numere cu acelasi semn trebuie sa conduca la un rezultat avind acelasi semn cu al operanzilor, in caz contrar aparind depasirea capacitatii de reprezentare (overflow). Deci depasirea (transportul din cifra semn) apare numai in cazul operatiilor cu numere avind acelasi semn.
Operatii in complement fata de 2
Operatiile cu numere binare se fac bit cu bit de la dreapta spre stinga. Scaderea este un caz particular de adunare, conform relatiei:
A - B = A + (-B)
Ca urmare, este suficient pentru realizarea scaderii sa adun la descazut, complementul fata de 2 al scazatorului. Daca rezultatul este negativ, el este obtinut in complement fata de 2 si pentru aflarea rezultatului final se aplica inca o data complementul fata de 2
Observatie: In calculul complementului fata de 2 al numerelor cu semn, semnul se pastreaza (cifra semn nu intra in complementare) !!
Ex: consideram numere cu semn pe octet: deci un bit de semn, 7 biti de date, numerele maxime fiind -127, respectiv 127.
6 (0)0110+
(0)1000
----------
(0)1110
100+30 = 64h+1eh (0)1100100+
(0)0011110
----------
transport->(0)(1)0000010 --> depasire, rezultat negativ incorect
-33-48=(-21h)+(-30h) (-21h) (1)1011111+
(-30h) (1)1010000
-----------
transport->(1)(1)10101111 --> rezultat negativ, corect, obtinut in complement fata de 2. In final, prin complementare, se obtine: 11010001= -51h
-120-30=(-78h)+(-1eh) (-78h) (1)0001000+
(-1eh) (1)1100010
----------
transport-> (1)(0)1101010 --> depasire, rezultat pozitiv incorect
Observatii:
- intre paranteze am inclus cifra care semnifica transportul si cifra semn a numerelor
Putem stabili 2 metode de detectare a depasirii (overflow):
a) daca consideram cifra semn ca fiind doua cifre binare (00->'+' si 11->'-') putem semnala depasire la adunarea sau scaderea a doua numere cu acelasi semn prin difererentierea celor 2 biti in cifra semn (01 sau 10 semnifica depasire)
b) depasirea apare atunci cind am fie transport spre cifra semn si nu am CY, fie cind am CY si nu am transport spre cifra semn. Putem stabili urmatoarea relatie intre depasire (OV), transport in afara capacitatii (CY) si semn (S): OV = CY _ S = CY XOR S
Avantajele utilizarii codului complementar fata de 2:
- bitii de semn se sumeaza identic;
- rezultatul se obtine printr-o singura operatie;
- se poate substitui scaderea printr-o adunare.
Operatii in complement fata de 1
In acest caz operatiile se fac la fel ca si anterior, insa operanzii sunt exprimati in complement fata de 1.
Adunarea a doua numere negative
A=2n-a -1 A+B= 2n-(a+b)+2n -1-1
B=2n-b -1
Rezultatul corect este 2n-(a+b)-1, deci se elimina 2n -1. Eliminarea acestui bit este echivalenta cu adunarea transportului (CY) din rengul semnului (2n) la bitul cel mai putin semnificativ.
(0)0101+
(0)0111
-----------
(0)1100 rezultat corect
+8+(+9) (0)1000+
(0)1001
-----------
(1)0001 eroare (rezultatul este un numar negativ)
Scaderea in complement fata de 1, poate fi inlocuita printr-o suma intre descazut si codul complementar fata de 1 al scatatorului. Se aduna apoi eventualul transport din rangul semnului la pozitia LSB.
-33-48=(-21h)+(-30h) (-21h) (1)1011110+
(-30h) (1)1001111
-----------
transport->(1)(1)0101101 +
1
----------
(1)0101110 --> rezultat negativ, corect, obtinut in complement fata de 1. In final, prin complementare, se obtine: (1)1010001= -51h
-120-30=(-78h)+(-1eh) (-78h) (1)0000111+
(-1eh) (1)1100001
----------
transport-> (1)(0)1101000 +
1
----------
(0)1101001 --> depasire, rezultat pozitiv incorect
Toate observatiile anterioare privind detectarea depasirii sunt valabile si aici, dar se observa dezavantajul recircularii transportului.
Avantajele utilizarii codului complementar fata de 1:
a) Operatiile respecta aceleasi reguli ca si operatiile in complement fata de 2, inclusiv sesizarea depasirii capacitatii de reprezentare, cu conditia de a efectua corectia rezultatului prin adunarea transportului la ultimul rang LSB.
b) Sesizarea depasirii capacitatii de reprezentare se poate face si prin sesizarea momentului cand adunand doua numere de acelasi semn se obtine un rezultat de semn opus.
c) Scaderea este aceeasi ca si la numerele reprezentate in complement fata de 2.
Dezavantaje:
Necesitatea efectuarii unei operatii in plus (corectia rezultatului).
Operatii cu numere in reprezentate in virgula mobila
Adunarea si scaderea a doua numere in virgula mobila se efectueaza astfel:
se compara cei doi exponenti pentru a-l determina pe cel mai mare;
se aliniaza mantisa numarului cu exponentul mai mic, prin deplasarea virgulei corespunzator exponentului mai mare;
se aduna (scad) mantisele aliniate atribuind exponentul comun;
se normalizeaza mantisa, eventual, concomitent cu modificarea exponentului.
Exemplu: Sa se efectueze suma numerelor zecimale si in virgula mobila, cu mantisa normalizata (subunitara), baza de reprezentare fiind 2.
,
Deoarece are exponentul mai mare, se va alinia corespunzator:
Nu este necesara normalizarea mantisei.
Deci .
Operatiile de inmultire si impartire presupun:
adunarea (scaderea) exponentilor;
inmultirea (impartirea) mantiselor;
eventuala normalizare a mantisei.
Exemplu: Sa se efectueze in virgula mobila inmultirea numerelor zecimale , .
,
.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1767
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved