Sunteți pe pagina 1din 16

Tema2: Reprezentarea informaţiei numerice în calculatoarele numerice.

2.1 Reprezentarea numerelor în virgulă fixă şi mobilă


2.2 Reprezentarea binar-zecimal a numerelor
2.3 Codurile direct invers şi complementar pentru reprezentarea numerelor

2.1 O caracteristică foarte importantă a oricărui calculator este forma de reprezentare a


informaţiei în acest calculator. Iniţial fiecare calculator îşi avea formele lui de reprezentare
a informaţiei de aceea era foarte complicat de a utiliza datele din unu alt calculator.
În acest scop pentru a evita consecinţele începând cu calculele din generaţia trei s-au
standardizat formele de reprezentare a numerelor în calculatoare. Primul lucru ce sa făcut a
fost că toate numerele trebuie să fie reprezentate cu un număr de biţi ce se împarte fără rest
la 8.

Informaţia numerică binară în calculatoarele numerice se reprezintă de obicei în


două forme: şi anume în forma de virgulă fixă şi mobilă.
La reprezentarea în virgulă fixă virgula ce disparte parte fracţionară de cea fixă se
află în tot timpul în una şi aceiaşi poziţie.
O asemenea formă de reprezentare are avantajul şi neajunsurile ei. Principalul
dezavantaj constă în faptul că pentru a avea un diapazon de reprezentare a numerelor sunt
necesare foarte mari cheltuieli de aparataj pentru că trebuie de rezolvat pentru partea
întreagă şi cea fracţionară un număr de biţi suficienţi de obţinere a rezolvării finale. De
aceia în această formă reprezintă numere în calcule, practic nu se utilizează.
Reprezentarea numerelor în virgulă fixă se foloseşte în două moduri, virgula se
fixează sau după cea mai puţin semnificativă cifră şi-n acest caz lipseşte partea fracţionară
a numerelor sau virgula se fixează înaintea celei mai semnificative cifrei a numerelor şi-n
acest caz lipseşte partea întreagă.
În primul caz la programarea fiecărui calculator se stabileşti din timp că varianta
respectivă este de tip întreg. A doua variantă nu se foloseşte separat în calcule nu se
foloseşte ci doar ca component de reprezentare a numerelor în virgulă mobilă.
O altă formă mai universală de reprezentare a numerelor în calculatoare este
reprezentarea în virgulă mobilă. În acest caz fiecare număr este reprezentat prin două
componente şi anume mantisa şi puterea (sau exponenta caracteristică) acestui număr.
Mantisa este de obicei un număr reprezentat în virgulă fixă înaintea celei mai
semnificative cifre, mantisa este un număr fracţionar iar puterea este un număr întreg.
Orice număr se poate reprezenta prin forma:
N = mrP, unde N- număr întreg, r- baza sistemului, m- mantisa şi p- puterea.
Mantisa şi puterea pot avea semne negative sau pozitive.
2.2 Practic fiecare calculator modern are şi regimul de funcţionare în sistemul de
numeraţii zecimale. Acest regim se foloseşte în codurile când problemele care se
rezolvă necesită prelucrarea a masivelor mari de cifre zecimale şi se confruntă cu
încărcarea acestor masive deodată în calculator şi extragerea masivelor de date în volum
mare din calculator. În acest caz pentru a evita pierderile de timp pentru conversia
datelor la intrarea şi ieşirea di calculator, datele se prelucrează în sistemul zecimal.
Acestea sunt problemele de statistică economică etc. în acest caz fiecare cifră zecimală
este reprezentată printr-un cod binar de patru biţi sunt mai multe variante de codificare
a cifrelor zecimale şi multitudinea codurilor utilizate în acest sens se împart în grupuri
după următoarele criterii:
I criteriu- este sau nu este codul ponderat
Definiţie: Codul se numeşte ponderat dacă pentru fiecare combinaţie de cifre binare
care codifică cifrele zecimale 4 321, care codifică cifrele zecimale, este valabil
următoarea formulă:
a= 1P1+2P2+3P3+4P4
unde P1, P2, P3, P4 sunt valorile care reprezintă ponderea fiecărei poziţie a codului binar
zecimal.
II criteriu- criteriu de complementarism
Definiţie: un cod se numeşte complementar dacă se respectă următoarea condiţie pentru
oricare cifră zecimală care în sumă ne dau cifra 9 codul numai dintre acest cifre se
obţine inversa codului ceilalte cifre.
2.3 Codurile direct, invers şi complementar
O foarte mare importanţă în fiecare calculator are felul în care este codificată
informaţia. De acesta depinde viteza prelucrării informaţiei cheltuielele de partaj în calcul
volumul de memorie utilizat pentru păstrarea informaţiei ş.a.m.
In codul direct nr negative si echivalentele lor pozitive au aceeaşi reprezentare cu excepţia
unui simbol numit simbolul semnului, care arată dacă nr este poz sau neg. Orice numar Ad
are urmatoarea semnificatie: Ad{A, daca A0; 1+|A|, daca A<0.
Acest cod are avantajul- este uşor de identificat numerele care au aceiaşi valoare
absolută dar sunt diferite după semn.
Dezavantajul – constă în faptul că; operaţiile de adunare şi scădere în acest cod se
îndeplineşte după reguli diferite ce înseamnă că sunt necesare mijloacele tehnice diferite
pentru acest operaţii.
Un nr poz reprezentat in cod invers este echivalent cu reprezentarea
A, daca A0
aceluiaşi nr in cod direct. Reprezentarea in cod invers se efectuiaza Ai= q-q-n+A, daca A<0, |A|<1
qn-1+A, daca A<0, |A|1
prin înlocuirea fiecărei cifre a acestui nr pină la valoarea q-1, unde q -
baza SN.
In codul complementar numerele pozitive coincid cu reprezentarea lor in cod direct, iar
orice numar negativ se reprezintă prin valoarea care-l completează pe acest număr pină la
baza SN pentru numere fracţionare si qn pentru numere întregi.
Codul complementar a unui numar negativ se formează in felul
A, daca A0
următor. La început se ia codul numarului pozitiv a numărului egal AC= q+A, daca A<0, |A|<1
qn+A, daca A<0, |A|1
după modul cu numarul negativ. Fiecare cifra a acestui numar se
înlocuieşte cu valoarea cifrei ce o completeaza până la (q-1), inclusiv cifra semnului. Se
termina formarea acestui cod cu adunarea unităţii la numărul nou obţinut.
Tema. Îndeplinirea operaţilor de adunare şi scădere în codurile direct, invers şi
complementar
Operaţiile de adunare în cod direct se îndeplinesc prin metoda clasică adică cifrele di
aceiaşi poziţie a două numere se adună (sau se scad) între ele şi-n cazul când suma lor  cu
baza sistemului de numeraţie în poziţia cifrelor respective se scrie diferenţa dintre suma
obţinută şi baza sistemului de numeraţie iar în poziţia puţin mai semnificativă se transmite
unitatea de transport care adună la cifrele din pozitiv respectivă. La scădere în cazul când
descăzutului e mai  decât cifra scăzătorului din cifra mai semnificativă a descăzutului se
ia împrumut..

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, B0. 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.)

Ex. lascad ereaincodinvers


A=1 4=0.111 0,B=5=0.0101
A i= 0 .1110
-B = 1.1010
0.1000
1
0.1001

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 AB
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 - 00=0 nu a avut loc 1,1000 - 10= 1 a avut loc

Tema: Înmulţirea numerelor în virgulă fixă

1. Metoda incepind cu bitii mai putini semnificativi ai inmultitorului cu deplasarea


deinmultitului la stanga. Metoda data nu se foloseste.
2. Metoda incepind cu bitii mai putini semnificativi cu deplasarea la dreapta a produsului
iintermediar.
3. Metoda incepind cu bitii mai semnificativ cu deplasarea la stinga a produsului
intermediar.
4.Metoda incepand cu bitii mai semnificativi cu deplasarea deinmultitului la dreapta.

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

Tema: Înmulţirea şi împărţirea numerelor binare luând în consideraţie semnul.


Sunt 2 metode:
1) pentru ambii operanzi se determină modulul, apoi aceşti moduli se înmulţesc după
regulile deja cunoscute, iar in calitate de produs se ia rezultatul obţinut a înmulţirii daca
semnele operanzilor coincid, si cazul cind semnele sunt opuse, atunci rezultatul obţinut se
transforma conform regulilor de obtinere a codului complementar a numerelor negative.
2) se înmulţesc numerele reprezentate in cod complementar fără a fi transformate initial. In
acest caz rezultatul obţinut trebuie corectat în dependenţă de semnele operanzilor conform
următoarelor reguli:
a) a0, b0 in acest caz se reduce la înmulţirea modulelor operanzilor si rezultatul
obţinut este cel corect si nu este necesară corecţia;
b) a<0, b0, bc=|b|, ac=1-|a|
acbc=|b|(1-|a|)=|b|-|b||a|
1-|b| - valoaraa corecţiei care este codul complimentar a lui b, adică scaderea
operandului b din operandul obţinut. (Vezi ex.1)
c) a0, b<0, ac=|a|, bc=1-|b|
acbc=|a|(1-|b|)=|a|-|a||b|
1-|a| corecţia = cu scaderea operandului poz din operandul rezulat.(vezi ex.2)
d) a<0, b<0, ac=1-|a|, bc=1-|b|
acbc=(1-|a|)(1-|b|)=1-|b|-|a|+|a||b|
Valoarea corecţiei in acest caz este |a|+|b|, vom obţine rezultatul 1+|a||b|. Acest rezultat
trebuie sa fie >l pentru a obţine rezultatul corect, 1 din partea intreagă se ignorează. 1-|a|
este corecţia = cu scăderea operandului pozitiv din operandul rezultat (vezi ex.3).
0 1 1 0 1a
c
E
x.1 01101 a c Ex.2 1 0 0 1 1a Ex.3 0 1 0 1 1b
c
10101 b 0 1 0 1 1b a
= .0
11
01 01101
c
|a
|=
0.1
00
11 0 1 1 01 |a
|=0.1
00
11 10011
c
01101
|b
|=
0.1
01
01 01 1 0 1 10011
b
c=.0
10
11
|b
|=0.1
01
01 1 0 0 111
1 0 0 0001 111001 01 1 0 1
01 1 0 1 100 1 1 0
. 0 0 1 0 0 01111
0
. 0 1 0 0 0 10001 0. 0 011010001 0
. 10011 +
a
1. 01101 -a 0
. 1011101111
1
. 01011 -b 1 . 1001110001 0
. 10101
1
. 1001110001 +
b
0110001111

Tema:Împărţirea numerelor în virgulă fixă


Pentru împarţirea numerelor în virg fixă se procedează in felul urmator: fiecare
iteraţie se începe cu scăderea din restul partial al împărţitorului (la prima x-y
1

iteraţie împărţitorul se scade din deîmpărţit), apoi se analizează semnul rz(i)=S

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

Metoda împărţirii nr binare fără restabilirea restului cu deplasarea S


1

prod. interm. la sting. 0


( rp)-y (rp)+y

La prima iteraţie are loc scaderea împărţitorului din deîmpărţit. La toate


celelalte iteraţii operaţia care se îndeplineşte depinde de semnul obţinut in iteraţia
precedentă. Dacă acest rest este pozitiv, atunci din el se scade valoarea împărţitorului.
Dacă restul este negativ, la el se adaugă valoarea împărţitorului. Stabilirea valorii cifrelor
citului se face analizind semnul restului obţinut. Dacă semnul este pozitiv, atunci valoarea
cifrei citului =1, dacă restul este negativ, atunci valoarea cifrei catului =0. Fiecare iteraţie
se termina cu deplasarea restului intermediar cu un bit la stinga.(Metoda 3.)
Metoda împărţirii numerelor binare fara restabilirea restului si cu deplasarea
împărţitorului la dreapta. x-y
4
La prima iteraţie are loc scăderea împărţitorului din deimpărţit. La toate rz(i)=S

celelalte iteratii operatia care se indeplineşte depinde de semnul obtinut 1


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.)

Tema: Îndeplinirea operaţilor asupra unui număr binar în virgula mobilă


.1 Adunarea şi scăderea numerelor binare în virgulă mobilă.
2 Înmulţirea numerelor binare în virgulă mobilă.
3 Împărţirea numerelor binare în virgulă mobilă.

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 Adunarea şi scăderea numerelor binare în virgulă mobilă are loc în câteva


etape:
Prima etapă se numeşte egalarea puterilor la această operaţie puterea ambilor
operaţii se egalează cu puterea mai mare pentru aceasta din puterea primului operant se
scade puterea operantului al doilea şi se obţine diferenţa dintre puteri. După aceasta
mantisa numerelor cu puterea mai mică se deplasează aritmetic la dreapta cu atâtea poziţii
cu cât este egală diferenţa dintre puterile numerelor, cu aceasta prima etapă se termină.
A doua etapă se numeşte adunarea (scăderea) mantiselor. La această etapă se
îndeplineşte conform regulei de adunare şi scădere a numerelor în virgulă fixă adunarea
sau scăderea mantisei. Numărul obţinut va fi mantisa rezultatului.
A treia etapă se numeşte normalizarea rezultatelor. Un număr este normalizat dacă
mantisa acestuia se află în deapazonul 1/2 M  1. Acesta înseamnă că cea mai
semnificativă cifră a mantisei luată după modul trebuie să fie egală cu 1. Dacă negativ egal
cu 0. Noi putem judeca după mantisa unui număr dacă e normalizat. Mantisa este
normalizată dacă cifra semnului diferă de cea mai semnif.
0,01 0,1…
=nu este normalizat, iar = este normalizat.
1,11 1,0…

Normalizarea poate fi efectuată din 2 părţi în caz că la adunarea sau scăderea


mantiselor a avut loc depăşirea, atunci normalizarea se efectuiază din stânga. Pentru
aceasta mantisa se deplasează inclusiv semnul mantisei cu un bit la dreapta iar în locul
semnului mantisei se înscrie valoarea inversă a lui. Puterea rezultatului, care se ia egală cu
puterea celui mai mare număr, se măreşte cu o unitate (se incrementează). Incrementarea
este mărirea cu o unitate a unui număr iar decrementarea este micşorarea cu o unitate a
numărului.
Al doilea tip de normalizare este normalizarea din dreapta. Ea se efectuiază atunci
când la adunarea sau scăderea numerelor nu a avut loc depăşirea iar bitul semnului
coincide cu bitul semnului obţinut la a 2 etapă. În acest caz normalizarea se efectuiază în
felul următor. Mantisa rezultatului se deplasează la stânga până când cifra semnului sau
bitul semnului va deveni diferit de bitul cel mai semnificativ a rezultatului.
Puterea rezultatului în acest caz se decrementează de atâtea ori de câte ori a fost
deplasată mantisa rezultatului la stânga.
Remarcă. Normalizarea din dreapta nu are loc în cazul când toate cifrele mantisei
obţinute la etapa 2 sunt egale cu zero.
Ex.: Px=0.1001, Mx=0.100101; Py=0.0111, My=1.000110.
1) dp - diferenţa de puteri; 2) dm – diferenta mantiselor. (vezi ex.)
0
.1001
1
.1001
1
.0010 Py=0.1001,My
= 1
.11
0001
0
.10010
1
1
.11000
1
0
.01011
0=M z
2 Înmulţirea numerelor în virgula mobilă are loc după un algoritm care prelucrează
separat puterile şi mantisele operazilor. Dar avem 2 numere x şi y valorile lui x=M x*rPx
şi y=My rPy atunci x*y = Mx*My*rPx+Py
Mr= Mx *My iar Pr = Px +Py
Mantisele în acest caz se prelucrează ca numere fracţionare iar puterea ca numere
întregi. Această operaţie are câteva etape de îndeplinire:
a) Se determină puterea rezultatului prin adunarea puterii operaţilor
b) Se determină mantisa rezolvării prin (x) mantisa operaţilor. Înmulţirea mantiselor se
poate efectua prin oricare din mantisele deja cunoscute. Inclusiv prin înmulţirea
modulelor operaţilor iar semnul mantisei se stabileşte prin „+” () a semnelor
mantiselor operaţilor sau prin înmulţirea codurilor mantisei nemodificate cu
corectarea ulterioară a rezultatului.
c) Normalizarea rezultatului. Deoarece la înmulţirea mantisei se x 2 numerele
fracţionare mai  1 ambele rezultate poate fi doar un număr fracţionar  decât cel
mai mic număr care se înmulţeşte la a 2 etapă. Aceasta înseamnă că am putea obţine
mantisa rezultatului nenormalizată în acest caz mantisa obţinută se deplasează cu un
bit la stânga cifră a numerelor mantisei. În caz când aceste 2 numere coincid,
numărul nu este normalizat

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

La împărţirea numerelor în virgulă mobilă se efectueaza astfel:


Fie x=2Px-Mx si y=2Py-My, atunci x/y=rPx-Py(Mx/My).
Algoritmul împărţirii numerelor în virg mobila contine urmatoarele etape:
1) Denormalizarea conştientă a deîmpărţitului pentru evitarea depăşirii la impărţirea
mantiselor, pentru a ne asigura ca mantisa deîmpărţitului să fie mai mică decât mantisa
împărţitorului. Se deplaseaza cu un bit la dreapta mantisa deîmpărţitului, iar puterea se
măreşte cu o unitate.
2) Din puterea deîmpărţ. se scade puterea împărţ. şi în aşa fel se obţine puterea citului.
3) Are loc împărţirea mantisei deimpărţitului la mantisa împărţitorului. Inainte de aceasta
se adună modulo 2 si se memoreaza bitii semnelor mantiselor. Dacă vre-o una din
mantise au semne negative, are loc determinarea modulelor. La sfirşitul acestei etape se
determina mantisa citului, astfel dacă rezultatul modulo 2 a biţilor semnelor operanzilor
=0, mantisa rămine neschimbată, iar dacă acest rezultat =1, atunci mantisa se transforma
conform regulilor de determinare a codurilor complementare a numerelor negative.
4) Are loc normalizarea citului. Mantisa citului se deplaseaza la stinga pină la momentul
cind bitul semnului citului va fi invers bitului celui mai semnificativ a rezultatului.
Puterea citului se va decrementa de atitea ori, de cite ori a fost deplasata la stinga mantisa
citului.
Ex. Px=0.0011, Mx=1.010010, Py=1.1011, My=0.110011
1) denormalizarea deimpărţitului
2)Pz=Px-Py 0.0100
Mx=1.101001, Px=0.0100 0.0101
0.1001
3) SxSy=01=1,
|Mx|=0.010111, -My=1.001101

Tema: Adunarea şi scăderea în cod binar zecimal


1 Adunarea şi scăderea numerelor în codul 8421
2 Adunarea şi scăderea numerelor binare zecimale în codul 8421+3
1 Adunarea numerelor în codurile binare zecimale are loc în linii mari conform aceleiaşi
reguli ca şi adunarea şi adunarea numerelor în alte sisteme de numerale cu excepţia
faptului că în timpul îndeplinirii operaţilor sunt necesare unele corectări a codurilor. Luând
în consideraţie specific codului binar zecimal.
Algoritmul de adunare a codului binar-zecimal include următoarele etape:
1. adunarea codurilor operanzilor conform regulilor de adunare a numerelor binare. În
urma adunării a oricăror 2 tetrade (cod binar din 4 cifre) x i + yi rezultatul obţinut se
prelucrează în dependenţă în faptul în care deapazon de numere au nimerit.
Exemplu: xi + yi  9 (corecţia = 0)
Alt caz: xi + yi  10 În acest caz iar apar 2 nuanţe: 1) că x i + yi poate fi mai  10 şi  15.
Şi a doua 2) xi + yi  (16)
6 se adună atunci când suma se află în deapazonul 10,15 şi atunci când suma  (16).
2. La etapa a 2 are loc corecţia (ajustarea) rezultatului care constă în adunarea lui
codului 6 (0110) în tetradele unde suma obţinută la prima etapă se află în deapazonul
de la 10 la 15, în acest caz din tetrada respectivă se va genera un transport artificial
şi tot corecţia + 6 se adună în tetradele din care a fost generat transformării la prima
etapă acest transport se numeşte natural.

Ex.: x=46583, y=35298

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

Scăderea numerelor în cod binar-zecimal se efectuează conform regulii ca la adunare


numai că înainte de prima etapă codul scăzătorului se inversează sau utilizând regurile
codului invers sau aceluia complementar. Adică codul fiecărei cifre zecimale se înlocuieşte
cu codul cifrei zecimale care o completează pe ea până la 9. Dacă prelucrarea informaţiei
se face în cod complementar atunci la codul cifrei cele mai semnificative se adună 1 adică
practic aceleaşi reguli. După aceasta numerele se adună conform aceleaşi reguli enumerate
mai sus. Codul semnelor numerelor binare zecimale pot fi reprezentat sau printr-un singur
bit ca şi-n cazul codurilor binare (0=+,9=-). În al 2 coz tetrada semnului se prelucrează ca
oricare tetradă a
Ex. : 7824-4576=3248
semnului. 00 00 . 01 11 10 00 00 10 01 00
10 01 . 01 01 01 00 00 10 01 00
10 01 . 11 00 11 00 01 00 10 00
01 10 01 10
10 10 . 00 11 00 10 01 00 10 00
01 10 .
00 00 . 3 2 4 8
2 Adunarea şi scăderea numărului în codul 8421+3 are loc în linii mari ca şi-n codul
8421 cu excepţia faptului că valoarea corecţiei zecimale în acest caz este diferită. Al doilea
număr în care prelucrarea numărului în codul 8421 diferă de cel 8421+3 e că acest cod este
complementar şi deci (transformarea) inversarea numărului are loc prin inversarea
codurilor cifrelor lui ceea ce nu era valabil la 8421. Valoarea corecţiei este diferită.
Principala caracteristică a codului 8421+3 constă în faptul că la adunarea acestor
coduri există numai transport natural spre deosebire de codul 8421. Acest lucru se
datorează faptului că ambele cifre sunt cu excesul 3 şi suma lor se obţine cu excesul 6 deci
în cazul când această sumă a cifrelor  9 atunci suma codurilor va fi  15. În acest caz din
tetrada obţinută- n urma adunării nu va avea loc cifra de transport. În cazul când suma
cifrelor  10 atunci suma codurilor va fi  16 şi-n acest caz transportul din tetrada
respectivă se va genera în mod natural. Valoarea corecţiei 8421+3 va depinde dacă a avut
sau nu a avut transportul din tetrada respectivă. În cazul când suma cifrelor x i + yi  9
excesul adunării este + 6 şi-i trebuie încă 3 deci corecţia va fi + 3 şi obţinem 0011.
În cazul când xi + yi  10 (sa dus 10 şi încă 6 deoarece valoarea este 16) deci corecţia
va fi – 3 1101.
Scăderea numărului în cadru 8421+3 se efectuiază ca şi-n 8421 dar un fapt foarte important
la această codificare constă în faptul că codul scăzătorului poate fi obţinut prin simpla
inversare a codurilor cifrelor lui şi adunarea lui 1 la cea mai simplă semnificată cifră.

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

Ex.: x=5728, y=2854, z=8582


0011. 1000 1010 0101 1011 Ex.: x=4738, y=-6562, z=-1824
0011. 0111 1010 0110 1011
0011. 0101 1011 1000 0111 1100. 0110 0111 0110 1011
0110. 1110 0101 1110 0010 1111. 1110 0001 1101 0110
1101. 1101 0011 1101 0011 1101. 1101 0011 1101 0011
0011. 1011 1000 1011 0101 1100. 1011 0100 1010 1001
8 5 8 2 0100 1011 0101 0111
1 8 2 4
Tema: Înmulţirea numerelor în codul binar-zecimal
Inmultirea numerelor in cod b-z se efectueaza conform unui algoritm care in mare
masura reflecta metoda de inmultire a numerelor binare. Formalizarea acestui algoritm
este urmatoarea: se incepe de la examinarea tetradelor mai semnificative a inmultitorului.
Poate fi realizata orice metoda de inmultire a numerelor.
Tetrada se compara cu 0, daca valoarea ei difera de 0, atunci deinmultitul se aduna la
produsul intermediar, iar dupa aceea are loc decrementarea tetradei examinate. In
momentut in care in urma decrementarii tetrada examinata devine =0, are loc deplasarea
produsului intermediar in dependenta care metoda se foloseste si se trece la examinarea
urmatoare tetrade. Procedura de inmultire se va termina atunci cand toate tetradele vor fi
examinate conform acestui algoritm.
La inmultirea numerelor reprezentate in codul 8421+3, deosebirea consta in faptul
ca tetrada examinata se va compara nu cu 0000 ci cu 0011.

S-ar putea să vă placă și