Cele patru reguli ale adunarii binare sunt urmatoarele:
0 + 0 = 0 (Suma 0 si transport 0)
0 + 1 = 1 (Suma 1 si transport 0)
1 + 0 = 1 (Suma 1 si transport 0)
1 + 1 = 10 (Suma 0 si transport 1)
Rezultatul primelor trei reguli este pe un singur bit in timp ce a patra regula are un rezultat pe doi biti. Pentru a aduna doua numere A = 011 si B = 001 se procedeaza astfel:
Transport | |||
A | |||
B | |||
Rezultat |
In coloana din dreapta 1+1=0 si transport 1 pentru coloana a doua, deci pe coloana a doua, 1+1+0=0 cu transport 1 pentru coloana treia. In coloana din stanga 1+0+0=1.
Pentru cazul in care transportul este unu se aduna trei biti (cate un bit a fiecarui numar si bitul de transport), dupa cum se prezinta in continuare:
+ 0 + 0 = 01 (Suma 1 si transport 0)
+ 1 + 0 = 10 (Suma 0 si transport 1)
+ 0 + 1 = 10 (Suma 0 si transport 1)
+ 1 + 1 = 11 (Suma 1 si transport 1)
Principalele patru reguli ale scaderii in binar sunt:
0 - 1 = 1 , (1 cu imprumut 1)
Cand se fac scaderi, uneori, poate aparea necesitatea unui imprumut din coloana urmatoare din stanga. In binar apare necesitatea unui imprumut numai cand se scade 1 din 0. In acest caz se imprumuta din coloana din stanga. Exemplu:
10102 | ||
11002 |
Inmultirea a doua cifre in baza 2 se defineste in felul urmator:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
Inmultirea in binar se face in acelasi mod ca si in cazul numerelor zecimale. Se formeaza produse partiale care se deplaseaza la stanga cu o pozitie si apoi se insumeaza aceste produse partiale, dupa cum se prezinta in exemplul urmator:
25,510 = 11001,1002 x
13,2510 = 01101,0102
| |||||||||||||||
Impartirea a doua numere nu are sens daca impartitorul este egal cu zero. Impartirea a doua cifre binare este simpla 0:1 = 0; 1:1 = 1.
Exemplu:
42310 : 2110 = 2010 rest 3
42310 = 1101001112
2110 = 101012
10101
10100 = 2010
------- 11 = 310
Complementul fata de 1 a unui numar binar se obtine prin schimbarea lui 0 in 1 si a lui 1 in 0, dupa cum se prezinta in continuare:
Numar binar: 00110101
Complementul fata de 1: 11001010
Complementul fata de 1 al unui numar binar se obtine foarte simplu utilizand circuite inversoare (NOT) asa cum se prezinta in figura 2.1.
Figura 2.1. Circuit pentru obtinerea complementului fata de 1al unui numar binar
Pentru conversia inversa din complement fata de 1 la valoarea adevarata (necomplementata) se procedeaza in acelasi mod, adica se inverseaza toti bitii.
Complementul fata de 2 al unui numar binar se obtine adaugand un 1 la cel mai putin semnificativ bit al complementului fata de 1 al acelui numar.
Exemplu:
Numar binar | |
Complementul fata de 1 | |
1 | |
Complementul fata de 2 |
Complementul fata de 2 al unui numar negativ binar se obtine utilizand circuite inversoare (NOT) si un sumator asa cum se prezinta in figura 2.2.
Figura 2.1. Circuit pentru obtinerea complementului fata de 2 al unui numar binar
Bitul de semn este bitul aflat in pozitia cea mai din stanga intr-un numar binar cu semn si indica daca numarul este pozitiv sau negativ.
0 este pentru numere pozitive, si 1 pentru numere negative.
Numerele cu semn se pot reprezenta prin 3 forme: in semn - marime, in complement fata de 1 si in complement fata de 2. Exista si alte forme de reprezentare cum ar fi complement fata de 10, complement fata de 9, etc. Primele trei forme au o utilizare mai larga, generala, spre deosebire de celelalte care se folosesc in calculatoare specializate pentru un anumit tip de calcule si aplicatii. Utilizarea mai multor forme de reprezentare isi are motivatia in simplitatea efectuarii anumitor calcule si conversii de reprezentare, asa cum vom vedea in continuare.
Consideram reprezentarea numarului pe n+1 biti. Primul bit din stanga reprezinta semnul numarului, ceilalti n biti contin marimea numarului egala cu reprezentarea binara a valorii absolute |N|.
Semn |
Marime |
1 bit |
n biti |
Exemplu:
n = 5 2510 = 0 11001, S = 0, M = 11001
-25 = 1 11001, S = 1, M = 11001
In reprezentarea semn-marime un numar negativ are aceeasi reprezentare a marimii ca si numarul pozitiv corespondent dar bitul de semn este 1 in loc de zero.
Reprezentarea numerelor reale cu semn este asemanatoare reprezentarii numerelor intregi. Conditia care se pune este utilizarea unui numar n1 de biti pentru partea intreaga si n2 pentru partea fractionara. Se impune astfel o pozitie fixa pentru virgula binara. Acest tip de reprezentare se numeste reprezentare cu virgula fixa, spre deosebire de reprezentarea cu virgula mobila, care va fi prezentata ulterior.
Formatul de reprezentare :
S |
Marime partea intreaga |
Marime partea fractionara |
|
n1 |
n2 |
Exemplu:
r = 45,3437510= 0 101101,01011
Utilizam 1 bit pentru semn, partea intreaga n1 = 6 biti, 1 bit pentru virgula binara, partea fractionara n2 = 5 biti.
Pentru numere pozitive reprezentarea in complement fata de 1 este identica cu reprezentarea in semn - marime. In cazul numerelor negative acestea se reprezinta prin complementul fata de 1 a numarului pozitiv corespondent. De exemplu utilizand 8 biti numarul zecimal - 53 se reprezinta ca si complementul fata de 1 a lui + 5310 (= 001101012), adica 11001010.
In complementul fata de 1 un numar negativ se reprezinta prin complementul fata de 1 a numarului pozitiv corespondent.
Pentru numere pozitive reprezentarea in complement fata de 2 este identica cu reprezentarea in semn - marime si cu reprezentarea in complement fata de 1. Numerele negative se reprezinta prin complementul fata de 2 a numarului pozitiv corespondent. Ca si in exemplul de mai sus, utilizand 8 biti, reprezentarea numarului zecimal - 53 se face ca si complementul fata de 2 a lui + 5310 (= 001101012), adica 11001011.
In complementul fata de 2 un numar negativ se reprezinta prin complementul fata de 2 a numarului pozitiv corespondent.
Semn-marime. Valoarea zecimala a numerelor pozitive si negative in reprezentarea semn-marime se determina prin insumarea ponderilor binare a pozitiilor bitilor care reprezinta marimea si care au valoarea 1, si ignorand pe cei ce sunt 0. Semnul se determina examinand bitul de semn.
Exemplu: Sa se determine valoarea zecimala a numarului binar cu semn, reprezentat in sistemul semn-marime: 10010101.
Solutie:
Semn |
Rezultat |
|||||||
Complement fata de 1. Valoarea zecimala a numerelor pozitive in reprezentarea complement fata de 1 se determina prin insumarea ponderilor bitilor din reprezentarea marimii care au valoarea 1, si ignorand pe cei ce sunt 0. Valoarea zecimala a numerelor negative in aceasta reprezentare se determina prin atribuirea unei ponderi negative ponderii bitului de semn, insumarea ponderilor bitilor care sunt 1, si adaugarea unui 1 la rezultat.
Exemplu: Sa se determine valoarea zecimala a numarului binar cu semn, reprezentat in complement fata de 1: a) 00010111 si b) 11101000
Solutie. a)
Semn | ||||||||
Rezultat |
||||||||
b)
Semn | ||||||||
Rezultat |
||||||||
Adaugand un 1 la rezultat obtinem: -24 + 1 = -23
Complement fata de 2. Valoarea zecimala a numerelor pozitive si negative in reprezentate in complement fata de 2 se determina prin insumarea ponderilor bitilor care au valoarea 1, si ignorand pe cei ce sunt 0. Ponderea bitului de semn pentru un numar negativ se ia cu valoare negativa.
Exemplu: Sa se determine valoarea zecimala a numarului binar cu semn, reprezentat in complement fata de 2: a) 01010110 si b) 10101010
Solutie. a)
Semn | ||||||||
Rezultat |
||||||||
b)
Semn | ||||||||
Rezultat |
||||||||
Se poate deduce din exemplele de mai sus de ce este preferata utilizarea complementului fata de 2 pentru reprezentarea numerelor binare cu semn. Pentru conversia in binar este necesara doar o insumare ponderata indiferent daca numarul este pozitiv sau negativ. La reprezentarea semn marime este nevoie de doi pasi pentru determinarea valorii zecimale, si anume, insumarea ponderilor bitilor ce prezinta marimea urmata de analiza bitului de semn pentru a determina daca numarul este pozitiv sau negativ. Reprezentarea in complement fata de 1 necesita adaugarea unui 1 la rezultatul insumarii ponderilor pentru numerele negative dar nu si pentru cele pozitive. De asemenea reprezentarea in complement fata de 1 nu este in general folosita deoarece pentru ca sunt posibile doua reprezentari ale lui zero (00000000 11111111).
In exemplele de mai sus s-au utilizat numere pe 8 biti deoarece gruparea pe opt biti este foarte uzuala in majoritatea calculatoarelor si acest grup poarta numele de octet sau byte. Folosind 8 biti se pot reprezenta 256 numere diferite. Cu ajutorul a doi octeti, deci 16 biti, se pot reprezenta 65536 numere diferite. Numarul total de combinatii diferite cu n biti este 2n.
La reprezentarea numerelor binare cu semn in complement fata de 2, domeniul valorilor posibile pentru un numar reprezentat pe n biti este:
-(2n-1) la + (2n-1 - 1)
unde 1 bit este de semn si n-1 biti reprezinta marimea. De exemplu cu 4 biti se pot reprezenta numere in domeniul -(23)= - 8 la (23) - 1=7. In mod analog cu 8 biti se pot reprezenta numere intre -128 si +127, s.a.m.d.
Pentru reprezentarea numerelor foarte mari este nevoie de foarte multi biti. De asemenea apar probleme la reprezentarea numerelor care au atat parte intreaga cat si fractionara. Reprezentarea in virgula flotanta, bazata pe notatia stiintifica este capabila sa reprezinte numere foarte mari si foarte mici fara cresterea numarului de biti si de asemenea poate reprezenta numere care au atat parte intreaga cat si fractionara.
Un numar in virgula flotanta (cunoscut si sub numele de numar real) se compune din doua parti plus semnul. Mantisa reprezinta marimea numarului, iar exponentul reprezinta numarul de locuri cu care trebuie mutata virgula zecimala (sau binara). Un exemplu de exprimare in virgula flotanta a unui numar zecimal va permite o mai usoara intelegere:
Sa consideram numarul intreg 123456789. Mantisa este ,123456789 iar exponentul 9. Cand se reprezinta un numar intreg in virgula flotanta el se normalizeaza prin mutarea virgulei zecimale la stanga celui mai semnificativ digit astfel incat mantisa este un numar fractionar si exponentul o putere a lui 10. Numarul se scrie:
0,123456789 x 109
Alte exemple:
= 0,5231 x 101
0,0047 = 0,47 x 10-2
= 0,783 x 104
Pentru numerele binare reprezentate in virgula flotanta formatul este definit de standardul ANSI/IEEE 754-1985 in trei forme: simpla-precizie(32 biti), dubla-precizie (64 biti), si precizie extinsa(80 biti). Formatul simpla precizie are 1 bit pentru semn, 8 pentru exponent si 23 pentru mantisa. Formatul dubla precizie are 1 bit pentru semn, 11 biti pentru exponent si 52 biti pentru mantisa.
Reprezentarea numerelor binare in virgula flotanta simpla precizie, se poate vedea in figura urmatoare:
32 biti |
||
S |
Exponent (E) |
Mantisa (F) |
1 bit |
8 biti |
23 biti |
In mantisa, virgula binara se presupune a fi la stanga celor 23 de biti. Cei 8 biti din exponent reprezinta un exponent deplasat obtinut prin adunarea la exponentul actual a numarului 127. Scopul acestei deplasari este reprezentarea numerelor foarte mari si foarte mici fara a fi nevoie de un bit de semn pentru exponent. Astfel domeniul exponentului este intre -126 si +128.
De exemplu numarul 1011010010001 poate fi exprimat ca 1 urmat de o parte fractionara prin mutarea virgulei binare cu 12 pozitii la stanga si inmultind cu puterea corespunzatoare a lui 2:
1011010010001 = 1,011010010001x212
Presupunand ca acesta este un numar pozitiv, bitul de semn (S) este 0. Exponentul, 12, se exprima in forma deplasata prin adunarea lui 127 (12+127=139). Deci exponentul deplasat (E) se exprima in binar sub forma 10001011. Mantisa este partea fractionara a numarului binar, .011010010001. Astfel numar devine:
S |
E |
F |
Modul de evaluare a unui numar binar exprimat in virgula flotanta se va prezenta in continuare. Formula generala pentru determinarea valorii unui numar exprimat in virgula flotanta este data de:
N = (-1)S(1+F)(2E-127)
Exemplu:
Bitul de semn este 1. Exponentul deplasat este 10010001 = 145. Aplicand formula obtinem:
N = (-1)1(1,10001110001)(2145-127) = (-1)1(1,10001110001)(218) = -1100011100010000000
Numarul binar in virgula flotanta este echivalent in zecimal cu -407,688. Deoarece exponentul poate fi orice numar intre -126 si +128, pot fi reprezentate numere foarte mari si foarte mici. Un numar exprimat in virgula flotanta pe 32 biti poate inlocui un numar binar intreg pe 129 biti.
Exista doua exceptii de reprezentare, pentru numarul 0 care se reprezinta cu toti bitii 0 si infinit care se reprezinta cu toti bitii pe 1.
Exemplu: Sa se converteasca numarul zecimal 3,248 x 104 in numar binar reprezentat in virgula flotanta simpla precizie.
Solutie:
Se converteste numarul in binar:
3,248 x 104 = 32480 = 1111110111000002 = 1, 11111011100000 x 214
Cel mai semnificativ bit nu va ocupa o pozitie deoarece este intotdeauna 1. De aceea mantisa este numarul binar pe 23 biti 11111011100000000000000 si exponentul deplasat este 14+127=141=100011012
Deci forma completa a numarului este:
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |