Documente Academic
Documente Profesional
Documente Cultură
Seria 10
Laborator 1
Laborator 1
1.Conversia ȋn binar
• 11 / 2 = 5, rest 1
• 5 / 2 = 2, rest 1
• 2 / 2 = 1, rest 0
• 1 / 2 = 0, rest 1
În Python conversia se poate realiza folosind funcţia bin. Numerele binare ȋn Python sunt
precedate de prefixul 0b sau 0B
Exerciţiu: Realizați manual conversia ȋn binar a numerelor 143, 91, 76, 184 și 209 verificȃnd
rezultatul obținut folosind funcția bin disponibilă ȋn Python.
2. Operaţii pe biţi
Este un operator unar care întoarce numrul întreg a cărui reprezentare internă se obţine din
reprezentarea internă a numărului iniţial, prin complementarea faţă de 1 a fiecărui bit(1→0 și 0→1).
Este un operator binar care returnează numărul întreg a cărui reprezentare internă se obţine
prin conjuncţia biţilor care apar în reprezentarea internă a operanzilor. Conjuncţia se face cu toate
perechile de biţi situaţi pe aceeași poziţie.
a b &
0 0 0
0 1 0
1 0 0
1 1 1
Exerciţiu: Realizați manual conjuncţia logică a numerelor (156;31), (84; 19) verificȃnd
rezultatul obținut folosind Python.
Este un operator binar care returnează numărul întreg a cărui reprezentare internă se obţine
prin disjuncţia biţilor care apar în reprezentarea internă a operanzilor. Disjuncţia se face între biţii
situaţi pe aceeași poziţie.
a b |
0 0 0
0 1 1
1 0 1
1 1 1
De exemplu 15 | 3=15.
Exerciţiu: Realizați disjuncţia logică a numerelor (156;31), (84; 19) verificȃnd rezultatul
obținut folosind Python.
Programare Procedurală
Seria 10
Laborator 1
2.3. Operatorul “sau exclusiv”
Este un operator binar care returnează numărul întreg a cărui reprezentare internă se obţine
prin operaţia de “sau exclusiv” asupra biţilor care apar în reprezentarea internă a operanzilor.
Operaţia de “sau exclusive” se face între biţii situaţi pe aceeași poziţie.
a b ^
0 0 0
0 1 1
1 0 1
1 1 0
De exemplu 15 ^ 3=12.
Exerciţiu: Realizați “sau exclusiv” pentru numerele (156;31), (84; 19) verificȃnd rezultatul
obținut folosind Python.
Este un operator binar care returnează numărul întreg a cărui reprezentare este obținută din
reprezentarea internă a primului operand prin deplasare la stânga cu un număr de biți egal cu al
doilea operand.
De exemplu 4<<2=16.
Exerciţiu: Realizați shift left manual pentru perechile (4;3), (21; 2) verificȃnd rezultatul
obținut folosind Python.
Este un operator binar care returnează numărul întreg a cărui reprezentare este obținută din
reprezentarea internă a primului operand prin deplasare la dreapta cu un număr de biți egal cu al
doilea operand. Prin deplasarea la dreapta, primii biți din reprezentarea internă a numărului
(pozițiile 1,2, ș.a.m.d.) se pierd iar ultimii se completează cu zero.
Programare Procedurală
Seria 10
Laborator 1
De exemplu 14>>2=3.
Exerciţiu: Realizați shift right manual pentru perechile (4;3), (21; 2) verificȃnd rezultatul
obținut folosind Python.
3. Probleme
1. Se citește un număr întreg n. Să se calculeze n*8, n/4 si n*10 folosind operatorii logici de
deplasare la nivel de bit.
2. Se citește un număr întreg. Să se determine dacă acesta este par sau impar folosind doar
operatorii logici la nivel de biți.
3. Se citesc 2 numere întregi x și n unde n este între 0 și 15. Să se afișeze: bitul n din x.
4. Se citesc 2 numere întregi x și n unde n este între 0 și 15. Să se afișeze: bitul n din x,
numărul x în care se setează bitul numărul n la valoarea 0, numărul x în care se setează bitul
n la valoarea 1, numărul x în care se șterge bitul n, numărul x în care se complementează
bitul n.
5. Se citesc întregii x, y, n, p. Să se copieze în x, începând din poziția p, ultimii n biți din y și să
se afișeze noua valoare a lui x.
6. Să se interschimbe valoarea a două numere întregi x, y fără a folosi alte variabile (se cer
două soluții: folosind operatori aritmetici și folosind numai operatori pe biți).
7. Să se verifice dacă un număr natural 𝑛 este de forma 2𝑘 sau nu.