LABORATOR - cdamian.tuiasi.ro · 106 105 104 103 102 101 100 2314765=2∗10 6 +3∗10 5 +1∗10 4...
Transcript of LABORATOR - cdamian.tuiasi.ro · 106 105 104 103 102 101 100 2314765=2∗10 6 +3∗10 5 +1∗10 4...
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
LABORATOR
Reprezentarea Numerelor
Sisteme de Calcul
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Cuprins • Sisteme de calcul, componenta hardware și software;
• Funcționarea unității de procesare;
• Reprezentarea informației;
• Reprezentarea numerelor în bazele: 10, 2, 16;
• Conversia numerelor din baza 10 în baza 2;
• Conversia numerelor din baza 10 în baza 16;
• Reprezentarea numerelor negative;
• Operații cu numere în diverse baze de numerație;
• Operații logice aplicate la nivel de bit;
• Evaluarea expresiilor logice.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Structura unui Sistem de Calcul
Componenta Hardware
Microprocesorul (uP)
Memoria Operativă (Memoria RAM)
Memoria Externă (Dispozitive de stocare a datelor)
Dispozitive periferice (monitor, tastatura, mouse, imprimantă, scanner)
Componenta Software
Sistemul de Operare (Linux, Android, Windows, IoS)
Programe de Aplicații (AutoCAD, OrCAD, Matlab, Office)
Programe Utilitare (Antivirusi, Audio/Video Playere)
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Dispozitive Periferice
Memorie Externa
Magistrala de Comenzi
Sisteme de Calcul - Structura Hardware
Microprocesor (uP)
Magistrala de Date
Memoria Operativa
(MO)
HDD CD-ROM
DVD-ROM Tastatura
Mouse Monitor
Imprimanta Scanner
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Funcționarea Unitătii de Procesare
Magistrala de Comenzi (48biti)
Magistrala de Date (64 biti)
b0
b1
b2
…
b63
b0
b1
b2
…
b48
Semnal de tact (frecventa de functionare)
b0
b1
b2
…
b63
b0
b1
b2
…
b48
date 0
t0 t1
date 1
comanda 0 comanda 1 Unitate de Procesare (Procesor)
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Sisteme de Calcul - Structura Hardware
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Sisteme de Calcul - Structura Hardware
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea informației
1 0 1 1 0 0 1 1
Ratele de transfer sunt exprimate în biţi pe secundă:
• 56 Kilobiţi/secundă în cazul modemurilor
• 1,544 Megabiţi/secundă în cazul reţelelor de tip T1
Capacitatea de stocare a dispozitivelor de memorie se exprimă în bytes:
• 256 MegaBytes (MB) RAM
• 160 GigaBytes (GB) hard disk
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea informației Atunci când ne referim la Bytes (în cazul memoriei unui computer):
– Kilobyte (KB) 210 = 1,024 bytes
– Megabyte (MB) 220 = 1,048,576 bytes
– Gigabyte (GB) 230 = 1,073,741,824 bytes
– Terabyte (TB) 240 = 1,099,511,627,776 bytes
• Atunci când ne referim la biţi pe secundă (cazul liniilor de transmisie):
– Kilobit pe second (Kbps) = 1000 bps (o mie)
– Megabit pe second (Mbps) = 1,000,000 bps (un milion)
– Gigabit pe second (Gbps) = 1,000,000,000 bps (un bilion)
– Terabit pe second (Tbps) = 1,000,000,000,000 bps (un trilion)
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea Numerelor
• Posibilități de reprezentare a numerelor întregi (baze de numerație):
– Baza 10 (reprezentarea obișnuită)
– Baza 2 (reprezentare binară)
– Baza 16 (reprezentarea hexazecimală)
• Sistemele de calcul operează cu numere reprezentate în forma binară.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Baza 10 • Baza de numerație 10 folosește zece caractere
pentru reprezentarea numerelor, cele zece caractere utilizate sunt: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
• Fiecărui caracter din componența numărului i se atribuie o putere a lui 10 crescătoare de la dreapta la stânga, începând cu puterea 0.
2 3 1 4 7 6 5
106 105 104 103 102 101 100
2314765 = 2 ∗ 106 + 3 ∗ 105 + 1 ∗ 104 + 4 ∗ 103 + 7 ∗ 102 + 6 ∗ 101 + 5 ∗ 100
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Baza 2 – Forma binară • Baza de numerație 2 folosește două caractere (0 și 1)
pentru reprezentarea numerelor, fiecărui caracter din componența numărului i se atribuie o putere a lui 2 crescătoare de la dreapta la stânga, începând cu puterea 0.
• Conversia unui număr din baza 10 în reprezentare binară se realizează prin împărțiri succesive la 2 și memorarea restului
1 0 1 0 0 1 0 1
27 26 25 24 23 22 21 20
(10100101)2= (1 ∗ 27 + 0 ∗ 26 + 1 ∗ 25 + 0 ∗ 24 + 0 ∗ 23 + 1 ∗ 22 + 0 ∗ 21 + 1 ∗ 20)10
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Baza 2 – Forma binară • Reprezentarea numerelor în baza 2 se poate
realiza utilizând un anumit număr de biți.
• Sistemele actuale de calcul de utilizează: 8, 16, 32, 64, 128 biți pentru reprezentarea valorilor numerice în baza 2.
• Gruparea a 8 biți poartă denumirea de 1 byte.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Baza 2 – Forma binara • Exemplu de reprezentare a numărului (239)10
în baza 2 folosind un număr diferit de biți.
(239)10 = (11101111)2 reprezentare pe 8 biți
(239)10 = (0000000011101111)2 reprezentare pe 16 biți
(239)10 = (00000000000000000000000011101111)2
reprezentare pe 32 biți
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Baza 16 • Baza de numerație 16 folosește șaisprezece caractere
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) pentru reprezentarea numerelor, fiecărui caracter din componența numărului i se atribuie o putere a lui 16 crescătoare de la dreapta la stânga, începând cu puterea 0.
• Conversia unui număr din baza 10 în reprezentare hexazecimala se realizează prin împărțiri succesive la 16 și memorarea restului
1 A 8 D
163 162 161 160
(1𝐴8𝐷)16= (1 ∗ 163 + 10 ∗ 162 + 8 ∗ 161 + 13 ∗ 160)10
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea Numerelor Baza
10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Baza 2
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Baza 16
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Baza 10 de numeraţie:
Zece caractere: 0,1,2,3,4,5,6,7,8,9
Fiecare număr funcţie de poziţie are o putere a lui 10.
Baza 2:
Două caractere: 0,1
Fiecare număr funcţie de poziţie are o putere a lui 2.
Baza 16 de numeraţie:
16 caractere: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Fiecare număr funcţie de poziţie are o putere a lui 16.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Conversia numerelor din baza 10 în baza 2
2 239 Rest
2 119 1
2 59 1
2 29 1
2 14 1
2 7 0
2 3 1
2 1 1
2 0 1
(239)10 = (11101111)2
2 140 Rest
2 70 0
2 35 0
2 17 1
2 8 1
2 4 0
2 2 0
2 1 0
2 0 1
(140)10 = (10001100)2
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Conversia numerelor din baza 10 în baza 16
16 239 Rest
16 14 F
16 0 E
(239)10 = (EF)16
16 140 Rest
16 8 C
16 0 8
(140)10 = (8C)16
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea Numerelor Negative • Reprezentarea numerelor negative se face folosind
reprezentarea în complement faţă de 2.
• Modalitatea de calcul a reprezentării:
Se inversează fiecare bit al reprezentării în baza 2 (ex. 01001010 va trece în 10110101)
Numărului rezultat prin inversare i se adaugă 1
Exemplu: 5 = 0101
-5 va fi (inversat(0101)+1) = 1010+1 = 1011
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Reprezentarea Numerelor Negative • Reprezentarea numerelor în mărime şi semn ţine cont de
faptul că bitul b7 (primul din partea stângă, cel mai semnificativ) este considerat ca fiind semnul numărului reprezentat în baza 2.
• Interpretarea bitului b7 este: b7= 0 numărul reprezentat de b6......b0 este pozitiv;
b7= 1 numărul reprezentat de b6......b0 este negativ.
3+ 0011+
5 0101
8 1000
3+ 0011+
7 0111
10 1010
7+ 0111+
-5 1011
2 0010
2* 0010*
3 0011
0010
0010
6 000110
b7 b6 b5 b4 b3 b2 b1 b0
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții
2. Transformaţi următorul număr 1101011110101111 în formă hexazecimală.
1. a. Reprezentați -5 în formă binară pe 8 biţi.
b. Evaluaţi expresia 25+(-5) sub formă binară.
c. Transformaţi rezultatul în baza 10.
D 7 A F
23 22 21 20
8 4 2 1
23 22 21 20
8 4 2 1
23 22 21 20
8 4 2 1
23 22 21 20
8 4 2 1
1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1
13 7 10 15
3. Înmulţiţi 6 cu 8 în baza 2.
4. Înmulţiţi 6 cu -8 în baza 2.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Operații logice la nivel de bit • Asupra numerelor reprezentate în baza 2
se pot aplica următoarele operații logice la nivel de bit:
– Negația logică (NOT)
• reguli de calcul: 1 negat=0, 0 negat=1.
– SI Logic (AND)
• reguli de calcul: 1 SI 1=1, 1 SI 0=0, 0 SI 0 =0.
– SAU Logic (OR)
• reguli de calcul: 1 SAU 1=1, 1 SAU 0=1, 0 SAU 0 =0.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Operații logice la nivel de bit
0101 (5)
0011 (3) =
0001 (1)
AND 0011 (3)
0010 (2) =
0010 (2)
AND
OR OR
NOT 0111 (7) =
1000 (8)
0101 (5)
0011 (3) =
0111 (7)
0010 (2)
1000 (8) =
1010 (10)
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Evaluarea expresiilor logice • Operatoriilor logice NOT, AND, OR le sunt
atribuite următorii operatori:
Operația logică NOT are operatorul ( ! )
Operația logică AND are operatorul ( && )
Operația logică OR are operatorul ( || )
• In urma evaluării unei expresii logice se obține un singur răspuns : adevărat sau fals.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Evaluarea expresiilor logice • Pentru următoarele exemple considerăm:
a=3, b=5, c=9.
• Expresii logice:
(a>b) = fals !(a>b) = adevărat
(c>a) = adevărat !(c>a) = fals
(a>b)&&(c>a) = fals !(a>b)&&(c>a) = adevărat
(a>b)||(c>a) = adevărat !((a>b)||(c>a)) = fals
(!(c>a)&&(a>b))||(c>a) = adevărat
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții • Realizați conversia următoarelor numere din
baza 10 în baza 2 folosind reprezentări pe 8 biți și 16 biți: 16, 32, 48, 63, 64, 128, 250, 255, 1024, 1280, 2048, 2050, 10000, 65535.
• Realizați conversia următoarelor numere din baza 10 în baza 2 folosind reprezentări pe 8 biți și 16 biți: -16, -32, -48, -63, -64, -128, -250, -255, -1024, -1280, -2048, -2050, -10000, -32764.
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții • Realizați următoarele operații folosind
reprezentarea numerelor în baza 2:
• 25+128=
• 68+165=
• -32+128=
• -89-67=
• 129-47=
• 253+(-15)=
• 12-158=
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții • Realizați conversia în baza 2 pe 8 biți și aplicați
operațiile logice NOT, AND, OR la nivel de bit asupra următoarelor numere (sau combinații ale acestora):
27, 35, 87, 96, -111, -145, 198, 243,-243
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții • Realizați conversia următoarelor numere din
baza 10 în baza 16: 16, 32, 48, 63, 64, 128, 250, 255, 1024, 1280, 2048, 2050, 10000, 65535.
• Realizați următoarele operații folosind reprezentarea numerelor în baza 16: • 25+128=
• 68+165=
• 32+128=
• 89-67=
• 129-47=
• 223+15=
• 192-158=
Programarea Calculatoarelor şi Limbaje de Programare www.infopuc.ro
Exerciții • Considerând a=23, b=89, c= 162 realizați
următoarele operații la nivel de bit:
!a=, !b=, !c=, a&b=, a|b=, b&c=, c|b=,
!a&!b=, !(c|a)=, !(a&c)=, (a|b)&(a&b)=.
• Considerând a=23, b=89, c= 162 evaluați următoarele expresii logice:
a<b=, c>a=, (b<c)&&(b<a)=, !(a>b)||!(c>a)=, !(a>b)=,
!(b>c)||(a<b)=, !((a<c)&&!(c>a))=.