Documente Academic
Documente Profesional
Documente Cultură
Adunarea numerelor binare (NB) in cod direct are loc conform urmatoarelor reguli:
se aduna cifrele care ocupa aceiasi pozitie in diferite numere, daca rezultatul obtinut e mai
mic ca 2, atunci el va fi cifra sumei, daca rerultatul este ca baza sistemului de numeratie
(SN), atunci in pozitia data ramine diferenfa dintre rezultatatul obtinut si baza SN. Codul
direct niciodata nu se foloseste pentru reprezentarea nr in calculator, deoarece adunarea si
scaderea in acest cod se efectueaza dupa reguli diferite, deci ar fi necesare elemente
functionate diferite pentru indeplinirea acestor ecuatii.
La adunarea in cod invers trebuie de tinut cont de urmatoarele interactiuni intre
valorile operanzilor:
1) А0, B0. Se efectueaza ca si adunarea in cod direct.
Ex.2la adulare incodinvers
-n
2) A<0, B>0, |A|>B. Ai=q-q +A - negativ Bi pozitiv; A=-12, B=8, B=0.1000
Ai+Bi= 1.0011
Ai+Bi=q-q-n+A+B=[A+B]i 0.1000
1.1011 =0.0100=4
3) A<0, B>0, |A|<B. Ai=q-q-n+A; Bi=B.
4) A<B, B<0. Ai=q-q-n+A; Bi=q-q-n+B; Ai+Bi=q-q-n+q-q-n+A+B.
Ex: A=-9, |A|=0.1001, Ai=1.0110; B=-3, |B|=0.0011, Bi=1.1100.
Regula generala.
Pentru a aduna 2 nr in cod invers aceste nr se aduna dupa regula de adunare a nr-lor
in cod direct indiferent de semnele acestor operanzi. Unica deosebire consta in faptul ca
daca din rangul semnului se genereaza cifra de transport, ea se aduna in rangul cel mai
putin semnificativ a rezultatului. Daca rezultatul obtinut este negativ, in rangul semnului v-
om avea о unitate si invers.
Scaderea nr-lor in cod invers are loc conform aceleiasi reguli numai ca inainte de a efectua
aceasta operatie valoarea scazatorului se inverseaza. A-B=A+(-B) (vezi ex.)
Cod complimentar.
Ex.3pentrucodcom plimentar
A=-14, B=-3, |A|=0.01110, |B|=0.0001
AC= 1.10010
B = 1.11101
Adunarea şi scăderea C
11.01111=0.10001
numerelor în cod
complementar are loc în
mare parte conform aceleaşi reguli ca adunarea şi scăderea în cod invers cu următoarele
excepţii:
1) În cazul când din bitul semnului are loc cifra de transport ia se ignoră (mai departe
nu se foloseşte).
2) La adunarea şi scăderea numerelor în complementar nu există transportul ciclic
Ca şi în cazul codului invers operaţiile de scădere este înlocuit prin operaţia de adunare
a descăzutului cu scăzătorul al cărui semn se inversează (din + în – şi invers).
Sunt patru cazuri posibile a valorilor:
1)În cazul când are loc adunarea a două numere pozitive A 0 B 0 adunarea se
efectuiază conform aceleaşi reguli ca şi în cod direct.
2)În cazul când A 0 B 0 A B
În acest caz are loc adunarea Ac + Bc = A + q + B
3)A 0, B 0 AB
Ac +Bc = q + A + B
4)A 0 B 0
Ac +Bc = A + B + q
În cazul când adunam 2 numere cu acelaşi semn sau sau la scăderea numerelor cu
semne diferite se poate întâmpla ca rezultatul obţinut să nu să se încadreze în numărul
de cifre rezervate în grila calculatorului. Acest fenomen se numeşte fenomen de
depăşire a grilei calculatorului şi în fiecare caz când se întâmplă acest lucru depăşirea
trebuie semnalizată. Cum se poate de depistat depăşirea? Sunt 2 metode de depistare a
depăşirii:
a)Utilizarea codurilor modificate. În codul modificat pentru semn sunt rezervate două
cifre numerice se consideră „+” dacă ambele cifre sunt egale cu zero şi „-” dacă ambele
sunt egale cu 1. Dacă în urma îndeplinirii operaţii de adunare sau scădere semnul va
avea unul dintre aceste două coduri 00 sau 11 aceasta va însemna că depăşirea nu a avut
loc dacă însă în urma îndeplinirii operaţiei vom avea 01 aceasta înseamnă că a avut loc
depăşirea pozitivă adică numărul obţinut e decât cel mai mare număr din calculator
sau 10 depăşirea negativă adică suma obţinută e mai mic număr din calcul.
Ex: 00,0101
00,1000
00,0101 - depăşire nu a avut loc deoarece avem 00
00,1010
00,1110
01,1000 - depăşire a avut loc
O altă metodă folosită în calculele fabricate în ultimii ani este metoda prin care
depăşirea se depistează în urma adunării modulo 2 a biţilor de transport în şi din bitul
semnului şi anume dacă aceşti biţii de transport dau în sumă modulo 2 suma este o
depăşirea nu a avut loc, dacă suma modurilor 2 a acestor biţi de transport este 1 atunci
depăşirea a avut loc.
Ex:
0,1010 0,1010
0,1000 0,1110
0,1101 - 00=0 nu a avut loc 1,1000 - 10= 1 a avut loc
1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0
1 1 1 0 0 1 1 1 0 0 1 2 3 1 1 0 0 1 1 1 0 0 1 4
1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0
1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0
1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0
1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0
1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0
1 0 1 1 0 0 0 0 0 0
1 0 1 1 0 1 0 0 0 0 1 0
1 1 0 0 0 1 1 0 1 0 0 0 0 1 0
1 1 0 0 0 1 1 0 1 0 0 0 0 1 0
1 0 1 1 0 1 0 1 1 0
1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0
1
restului obţinut, dacă semnul este pozitiv atunci valoarea cifrei citului in x-y0
S
2
această iteraţie va fi =1, dacă restul este negativ valoarea cifrei citului va fi rp
rz(i)=S
rp+y
rp-y
1
S
0
rp-(y) rp+y
=0. In cazul cind restul este negativ la el se adună împărţitorul pentru a restabili ultima
valoare pozitivă a restului. Fiecare iteraţie se termină cu deplasarea la stinga a ultimului
rest partial. Procesul împărţirii se termină sau cind valoarea restului partial =0 sau cind s-a
obţinut numarul necesar de cifre ale citului.
Metoda l cu restabilirea restului si deplasarea restului la stinga.
Impărţirea poate fi efectuată şi cu deplasarea împărţitorului la dreapta. La deplasarea
aritmetică la stinga, în locul cifrei care se eliberează se introduce tot timpul 0, iar cifra care
iese din cadrul numarului se pierde. Deplasarea aritmetica la dreapta are loc in felul
urmator: in rangul superior tot timpul se păstrează cifra care a fost, iar celelalte ranguri se
completează cu cifrele care se află în vecinătate. Cifra care iese din cadrul nr se pierde.
Metoda 2 cu restabilire restului si deplasarea impărţitorului la dreapta.
Dezavantajul principal al metodei cu restabilirea restului consta in faptul obţinerii
resturilor negative, deci este necesara restabilirea valorii restului pozitiv, x-y
3
iar aceasta înseamnă că vor apărea cheltuieli suplimentare de timp. rz(i)=S
în iteraţia precedentă. Dacă acest rest este pozitiv, atunci din el se scade 0
rp-(y) rp+(y)
valoarea impărţitorului. Dacă restul este negativ la el se adaugă valoarea
impărţitorului. Stabibrea valorii cifrelor citului se fece analizand semnul
restului obţinut, daca semnul este pozitiv atunci valoarea cifrei citului =1, daca restul este
negativ, atunci valoarea cifrei citului=0. Fiecare iteratie se termina cu deplasarea aritmetica
a impartitorului la dreapta. (Metoda 4.)
Noţiunii generale
Îndeplinirea operaţii aritmetice asupra numerelor în virgulă mobilă are loc conform
diferitor algoritme care reprezintă la rândul lor prelucrarea numerelor în virgulă fixă cu
următoarele precizări: puterile se prelucrează ca numere în virgulă fixă întregi iar
mantisele ca numere în virgulă fixă fracţionară. Algoritmii la diferite operaţii sunt
diferiţi.
1 0 1 1 0 1
1 0 0 1 0 1
0.1 0 1
1.1 1 0 1 0 1 1 0 1
Pz= 0.0 111 0 1 1 0 1
1 1 1 0 0 0 0 1
1 0 1 1 0 1
01 00 01 10 0101 1000 00 10
00 11 01 01 0010 1001 10 00
01 11 10 11 1000 0001 10 10
00 00 01 10 0000 0110 01 10
10 00 00 01 1000 1000 00 00
y-x-? Cu reprezentarea semnului pun tetradă. Dacă y e „+” atunci se pune în locul codului
zero 3 iar în locul lui 1 (9) punem 9+3=12