Sunteți pe pagina 1din 6

Reprezentarea numerelor in calculator la nivel de bit

Reprezentarea numerelor intregi


Numerele intregi in calculator se reprezinta in baza 2. Numerele intregi pot fi positive, sau
negative. De aceea avem nevoie de un bit, pentru a reprezenta semnul numarului intreg. Daca
numarul e pozitiv, atunci bitul de semn e 0, daca e negative, atunci bitul de semn e 1.
Numerele intregi se reprezinta in trei coduri:
1. Cod direct
2. Cod invers
3. Cod complementar
Daca numarul e pozitiv atunci bitul de semn e 0 si in toate trei coduri el are aceeasi reprezentare.
Ex +225= +(128+64+32+1)= 0 11100001 = 0 11100001 =0 11100001
Cod direct cod invers cod complimentar

Daca numarul intreg e negative, atunci bitul de semn e 1 si pentru a-l transforma in cod direct,
invers, complementar, trebuie:
1. Sa-l transformam in baza 2 si sa punem bitul de semn 1 – cod direct
2. Bitul de semn ramane 1, iar toti ceilalti biti se inverseaza si se obtine codul invers
3. Pe ultima pozitie (20) se aduna 1 si se obtine codul complementar

Toate operatiile aritmetice si logice la nivel de bit se efectuiaza in cod complementar. Daca
rezultatul se obtine negativ, adica bitul de semn e 1, atuncu rezultatul e cod complementar si
pentru a-l transforma in cod invers scadem 1, obtinem codul invers, apoi inversam bitii in adara
de cel de semn si obtinem codul direct si transformam numarul binary in numar in baza 10.

Ex -209= - (128+64+16+1)= 1 11010001 = 1 00101110 = 1 00101111


Cod direct cod invers cod complementar
Notiune de operatori
Operatorii sunt de mai multe tipuri:
1. Operatori aritmetici, care efectuiaza operatii cu numere intregi, sau reale
+ - * div (/ 5/2=2) mod(%) / (e impartirea reala, in c++ trebuie 1.0*5/2=2.5)
2. Operatori logici, cu ajutorul carora vom alcatui expresii boolean compuse din mai multi
operanzi (sunt expresii, care au valoarea true(1), sau false(0) ). Acesti operatori logici
sunt: not and or xor implicatia (→) echivalenta (↔)

in C++ and - &&; or - ||; x xor y = not(x ↔ y )= x^^y


3. Operatori la nivel de bit pentru numere intregi:
not(~) and(&) or(|) xor(^) shl(<<) shr(>>)
4. Operatori pentru multimi – care efectuiaza operatii cu multimi (set):
- Reuniunea +
- Intersectia *
- Scaderea -
5. Operatori relationali - cu care vom alcatui expresii de tip boolean cu valoare:
true sau false: =, <>, <=, >=, in ( ∈¿
=(= =) <>(!=)
Operatori logici:
Definitia1. Se numeste conjunctia propozitiilor p si q, asa o propozitie, care se notea
p and q (p&&q), care este adevarata (true), cand si p si q ii adevarata si falsa in celelalte
cazuri
Definitia2. Se numeste disjunctia propozitiilor p si q, asa o propozitie, care se noteaza p
or q (p || q), care este adevarata (true), cand cel putin una din propozitiile p si q este
adevarata si falsa cand si p si q este falsa

Definitie3. Se numeste propozitia p implica q, asa o propozitie, care se notea p →q, care
este are valoare false, daca p este true, iar q false, in celelalte cazuri este true

Definitie4. Se numeste echivalenta propozitiilor p si q, asa o propozitie, care se notea


p ↔q, care este are valoare true , daca p si q au aceeasi valoare si false cand au valori
diferite
p ↔q = (p →q) and (q →p)
Definitia 5 p xor q = not (p ↔q)
Definitia6. Se numeste negatia propozitiei p, asa o propozitie, care se noteaza not p, sau
p, care este true cand p- false si false, cand p este true

Tabelul de adevar:

p q not p = p not q =q p and q p or q p→ q q→ p p ↔q p xor q


=!p =!q
0 0 1 1 0 0 1 1 1 0
0 1 1 0 0 1 1 0 0 1
1 0 0 1 0 1 0 1 0 1
1 1 0 0 1 1 1 1 1 0
Reprezentarea numerelor reale in calculator.
Operatii la nivel de bit cu numere reale in virgula fixa
Numerele reale in calculator se reprezinta:
1. Cu virgula fixa
2. Cu virgula mobile:
- In formatul exponent – mantisa
- In formatul caracteristica-mantisa
Reprezentarea numerelor cu virgula fixa
Se reprezinta doar numerele reale subunitare (<1)
Pentru a reprezenta un numar real subunitar cu virgula fixa trebuie:
- Sa transformam fractia in baza 2. Ex1 0.01110111
- Daca numarul real e pozitiv, atunci bitul de semn e 0, intregul nu se scrie,
virgula se omite si se iau doar bitii de dupa virgula
- Am primim numarul 0 01110111 = 0.46484375
1 1 1 1 1 −32+ 16+4 +2+1 55
Ex.2 1 00110111 = -( 8 + 16 + 64 + 128 + 256 ¿= 256
=- 256
=- 0.21484375

=- 0.21484375 = 1 00110111 = 1 11001000 = 111001001


Cd ci cc

Ex3. 0.46484375 +(-0.21484375) = 0.25

Ex4 -0.46484375 +(-0.21484375) = - 0.6796875


- 0.46484375 = 1 01110111 = 1 10001000 = 1 10001001
Cd ci cc
Reprezentarea numerelor cu virgula mobile in formatul exponent mantica

SM SE exponentul mantisa
Cu virgula mobila pot reprezentate numere reale foarte mari, sau foarte mici

1 1 1 1 1
Ex1. 530,6796875 = (512+ 16+2+ 2 + 8 + 32 + 64 + 128 ) = 1000010010. 1010111=
0. 10000100101010111 * 210
530.6796875 0 0 1010 10000100101010111 cd
-530.6796875 1 0 1010 10000100101010111 cd
1 0 1010 01111011010101000 ci
1 0 1010 01111011010101001 cc

Ex2 0.0000000101110111 = 0.101110111*2-7 =


0 1 0111 101110111 = 0 1 1000 101110111 = 0 1 1001 101110111
Cd cd ci cd cc cd

Ex3 - 0.0000000101110111 = - 0.101110111*2-7 =


1 1 0111 101110111 = 1 1 1000 010001000 = 1 1 1001 010001001
sM se Cd cd ci ci cc cc

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