You are on page 1of 16

Reprezentarea

Informatiei in sistemul
de calcul
SISTEMUL BINAR
Sistemul binar
 Informatia este reprezentata digital – unitatea
fundamentala pentru reprezentarea informatiei
este discreta (nu poate lua orice valoare)
 Se foloseste reprezentarea binara a
informatiei, unitatea de baza a informatiei este
bit-ul si poate avea 2 valori (0 sau 1).
 Strict conventional se atribuie valoarea 0
prezentei potentialului electric si 1 absentei
acestuia.
 O secventa de 8 biti se numeste byte.

 Un byte reprezinta 28=256, putem reprezenta 256


valori: 256 caractere, numerele 1÷ 255.
 1 kilobyte = 210 byte = 1024 byte

 Sistemul zecimal – numarul cifrelor distincte


reprezinta baza sistemului numeric.
 Ex.: In sistemul zecimal sunt 10 cifre (0,1,2,….9).

 Fiecare numar in aceasta baza este exprimat ca


o suma de produse ale fiecarei cifre si a unei
puteri a lui 10.
 5267=7x100+6x101+2x102+5x103
 Sistemul binar (baza 2) este alcatuit din 2
cifre (0,1). Similar:
 10101 = 1x20+0x21+1x22+0x23+1x24
 10101 (2) = 21 (10)
Zecimal BInar Suma argumentilor lui
2
1 1 1

2 10 2+0

3 11 2+1

4 100 4+0+0

5 101 4+0+1

6 110 4+2+0

7 111 4+2+1

8 1000 8+0+0+0

9 1001 8+0+0+1

10 1010 8+0+2+0
Aritmetica binara
 Pentru a aduna doua numere, le aliniem unul sub altul dupa puterile bazei si
dupa aceea adunam cifrele dinspre dreapta.

 Daca suma pentru orice coloana este mai mare decat ceea ce putem exprima
cu o cifra (0 sau 1 pentru baza 2) atunci transportam un 1 la puterea imediat
urmatoare (mai mare).

 Numim aceasta o depasire (overflow) daca puterea imediat urmatoare nu a fost


implementata si acest transport nu este posibil.
100101110 +
110011011
---------------
1011001001
 Numerele binare lungi sunt greu de citit. Din acest motiv, exista conventia de a
grupa bits-ii cate 3 sau 4 incepand de la dreapta.

 Este obisnuit sa scriem fiecare set de 4 bits ca o cifra in baza 16


(hexazecimala).

 Aceste cifre sunt 0,1,2,3,….9,A,B,C,D,E,F


 Astfel 0011 este 3 si 1111 este F
 Pentru a explica scaderea este necesar sa cunoastem un
concept al algebrei moderne numit aditivul invers. De
fiecare data cand adunam un numar la aditivul sau,
obtinem 0.
 Ex.: 3 + (-3) = 0

 Matematic scaderea este posibila deoarece fiecare numar


are un invers. De fapt, scaderea nu este altceva decat
adunarea aditivului invers.
 Scaderea Adunarea
minus plus
scazator inversul scazatorului
----------------- --------------------------
diferenta suma

 Acest fapt este important deoarece UCP are logica de


adunare. Daca putem converti scaderea la adunare atunci
putem folosi aceasta logica.
 Putem calcula aditivul invers in numai 2 pasi. Mai intai
formam un numar care este numit complement de unu:
oriunde numarul original are un bit de 1, complementul va
avea un 0 si viceversa. Apoi adaugam 1 si obtinem
complementul de 2.

 De exemplu sa consideram urmatoarele numere de 8 bits:


 0010 0101 Numar
1101 1010 Complement de unu
1101 1011 Complement de 2

 Notati ca adunand un numar cu complementul sau de doi,


suma este o putere a lui 2 ( de aici si numele)
 Ex.: 0010 0101 Numar
+1101 1011 Complement de doi
-------------------------------------------
10000 0000 Suma ca putere a lui doi
 Daca luam in considerare numai 8 bits din dreapta atunci
cu adevarat raspunsul este 0.
 Inmultirea urmeaza acelasi proces folosit in aritmetica
zecimala, cu exceptia faptului ca tabla inmultirii este mult
mai restransa.
 Ex.: 101
x 101
-----------------
101
000
101
------------------
11001
 Atata timp cat multiplicam numai prin 1 si 0, putem converti
problema inmultirii intr-o serie de adunari si deplasari
(shifts) analizand bits-ii din inmultitor.

 Daca bitul este 1, adunam deinmultitul la produsul partial si


deplasam inmultitorul cu o pozitie la stanga; daca bitul este
0, pur si simplu facem numai deplasarea.
 Dupa cum stim CPU (UCP) are logica atat pentru adunare cat si
pentru deplasare asa ca putem intelege cum se realizeaza inmultirile.

 Observam ca ceea ce pentru noi este o singura operatie devine


pentru computer o secventa de operatii primitive.

 Rezulta ca multiplicarea se realizeaza mai complicat si ia mai mult


timp. De fapt timpul necesr unei inmultiri va depinde de numarul de 0
in inmultitor. Cu cat sunt mai putini de 0 cu atat sunt mai multe
adunari si timpul de calcul este mai indelungat.

 De retinut din aceasta: nu toate instructiunile au aceeasi viteza de


procesare si unele viteze de procesare variaza cu datele.

 Impartirea in binar se face asemanator cu impartirea in sistemul


zecimal.
Reprezentarea numerelor
 Numerele pot fi reprezentate ca intregi sau in virgula
mobila (floating point).

 Pentru reprezentarea ca intreg se folosesc un numar de 2n


octeti, functie de formalismul de reprezentare.
 1 octet = 0÷255
 2 octeti – se numeste reprezentare de 16 bits = 0÷64000
 4 octeti (32 bits) = 232
 8 octeti (64 bits)

 Cel mai mare numar ce poate fi pastrat intr-un byte este


11111111 sau 28-1 sau 255.

 Daca lasam deoparte primul (cel din stanga) bit pentru a


servi ca bit de semn, atunci numerele care pot fi pastrate
intr-un byte pot varia de la -127 la 127.
 Pentru a memora numere mai mari putem combina 2 bytes
consecutivi. In 16 bits se poate pastra un numar pozitiv de ordinul 216-1
sau 65535. Daca folosim un bit pentru a fi bitul de semn atunci
intervalul devine: -32767 la 32767.

 Acest numar este destul de mare pentru majoritatea aplicatiilor; el este


in general numit intreg si formatul de 16 bits este numit formatul de
numar intreg.

 Totusi unele probleme necesita numere mai mari sau valori fractionale.
Putem sa lucram cu numere mai largi folosind 4 bytes (32 bits) ca
unitate. Modul de lucru se numeste virgula mobila (floating point).

 Prima reprezentare de tip virgula mobila este pe 4 bytes si se numeste


reprezentare in simpla precizie (1 byte exponetul, 3 bytes mantisa).

 Pentru reprezentarea in dubla precizie se aloca 8 bytes (1 byte


exponentul, 7 bytes mantisa) (± 255 valori reprezentabile pe 7 bytes x
10±127) numere care acopera aproape toata clasa de precizie.
Reprezentarea caracterelor
 Alfabetul calculatorului contine 26 de litere mari si 26 de litere mici, 10
cifre, cateva duzini de semne de punctuatie si cateva duzini de
caractere speciale de control pe care hardul le recunoaste.

 Fiecare dintre aceste caractere are un cod unic care poate fi exprimat
pe un byte. De exmplu, cand utilizatorul tasteaza “57” la un terminal, el
de fapt introduce un cod de 8 bits pentru “5” urmat de un cod de 8 bits
pentru “7”.

 Softul de sistem al calculatorului poate converti apoi aceste coduri in


numar binar 0011 1001 care poate fi folosit pentru calcul. In acelasi fel
softul de sistem trebuie sa converteasca datele la siruri de coduri care
pot fi listate sau afisate.

 Pentru a elimina erorile de transmisie, computerul adauga un bit de


paritate pentru a detecta codurile invalide. Bitul de paritate este setat fie
pe 0 fie pe 1 pentru a garanta numarul impar de cifre de 1 al codului
(exista deasemenea si o paritate para).
 Este simplu sa proiectam hard-ul in asa fel incat sa testeze
paritatea fiecarui caracter procesat pentru a detecta codurile
invalide. Acest fapt este folositor in special cand citim date
stocate pe medii magnetice, cum sunt discurile, pe care
orice particula de praf poate cauza erori temporare.

 Cand o eroare de paritate este detectata, softul de sistem


normal incearca sa reciteasca (sa rescrie) caracterul, de un
numar fix de ori. Daca eroarea persista, operatia este
intrerupta.

 Folosirea unui bit pentru verificarea paritatii va face codul


caracterului mai lung. Totusi, acesta nu este de fapt o
problema atata timp cat codurile necesare reprezentarii
alfabetului sunt mai putine de 128 si 128 de coduri pot fi
exprimate in 7 bits. Al 8-lea bit este disponibil pentru a folosi
ca bit de paritate.
 American Standard Code for Information Interchange
(ASCII) este codul utilizat de toate aplicatiile folosite in
microcomputere. Fiecare caracter este scris pe 7 bits.
 De exemplu: 100 0001 este codul pentru A
110 0001 este codul pentru a
100 0010 este codul pentru B

 Mai exista si alte coduri printre care si Extended Binary


Coded Decimal Interchange Code (EBCDIC). Acesta este
un cod de 8 bits dezvoltat de IBM pentru calculatoarele
mari. El nu necesita un bit de paritate deoarece hardul care
il proceseaza adauga un bit de paritate.

 Majoritatea memoriilor utilizeaza un al 9-lea bit de paritate


pentru a-si verifica continutul. Un astfel de bit de paritate
este utilizat de hard si nu poate fi utilizat de programe.
Reprezentarea logica si
fizica
 Atunci cand vorbim despre calculatoare trebuie sa facem diferenta
intre entitatile logice si cele fizice.

 Entitatile logice sunt acelea care comunica intelesul. De exemplu, un


cod de caractere pe 8 bits, un intreg pe 16 bits, un numar in virgula
mobila pe 32 bits, un numar in dubla precizie pe 64 bits sunt toate
unitati logice.

 Cuvantul, in schimb, este o unitate fizica. Marimea cuvantului este


numarul de bits care pot fi accesati ca o unitate. Intr-un calculator de 8
bits, marimea cuvantului este de 8 bits.

 Pentru a citi o unitate logica exprimand un numar in virgula mobila


este necesar sa citim patru unitati (cuvinte) fizice. Pe de alta parte un
calculator de 32 bits in mod normal are facilitati pentru a accesa
numai o parte a unui cuvant (un anume byte).
Reprezentarea imaginilor
 Imaginile se considera a fi obiecte dreptunghiulare,
alcatuite dintr-o matrice pixel (pixel = elementul cel mai
mic din imagine, ce este definit individual).

 1 pixel este caracterizat prin pozitia in cadrul imaginii si


culoarea sa. Numarul maxim de culori ce poate fi luat de
un pixel se numeste adancime de culoare.

 Cel mai des intalnite:


 Adancimea de culoare de 1 bit pentru alb-negru;
 Adancimea de culoare de 1 byte ce permite reprezentarea a 256
culor sau 256 nuante de gri;
 Adancimea de culoare de 2 byte – 64000 culori;
 Adancimea de culoare de 4 byte – cateva milioane de culori.

You might also like