Cuprins
- Cuprins
- Cap. 1 Reprezentarea informaţiilor
- 1.1 Reprezentarea numerelor întregi în sistemul binar
- 1.2 Deplasarea numeral binare cu semn
- 1.3 Reprezentarea numerelor reale
- 1.4 Reprezentarea caracterelor
- Cap. 2 Constante, variabile şi expresii
- 2.1 Tipuri fundamentale
- 2.2 Variabile
- 2.3 Modificatori de tip
- 2.4 Operatorul typedef
- 2.5 Constante
- 2.6 Constante cu nume
- 2.7 Expresii aritmetice
- 2.8 Tablouri
- 2.9 Instrucţiunea de atribuire
- 2.10 Prototipuri de funcţii
- 2.11 Operaţii de intrare / ieşire
- 2.12 Funcţia main
- 2.13 Execuţia unui program
- 2.14 Operatorii ++ şi - -
- 2.15 Operaţii cu numere întregi la nivel de bit
- 2.15.1 Operatori de depasare
- 2.15.2 Operaţii logice la nivel de bit
- Cap. 3 Structuri de control fundamentale
- 3.1 Algoritme
- 3.2 Expresii relaţionale
- 3.3 Expresii booleene
- 3.4 Operatorul do-while
- 3.5 Operatorul while
- 3.6 Operatorul for
- 3.7 Operatorul if
- 3.8 Operatorul ?
- 3.9 Operatorul switch
- 3.10 Operatorul ,
- Cap. 4 Funcţii
- 4.1 Definirea funcţiilor
- 4.2 Pasarea parametrilor funcţiilor
- 4.3 Recursivitatea
- 4.4 Sabloane de funcţii
- Cap. 5 Pointeri şi referinţe
- 5.1 Pointeri
- 5.2 Referinţe
- 5.3 Parametri funcţiilor
- 5.4 Pointeri la funcţii
- 5.5 Declalararea variabilelor tip pointer la funcţie
- 5.6 Pointeri şi tablouri unidimensionale
- 5.7 Siruri tip C
- 5.8 Pointeri şi tablouri multidimensionale
- 5.9 Parametrii funcţiei main
- Cap. 6 Fişiere tip C
- 6.1 Fişiere text
- 6.1.1 Funcţii intrare / ieşire cu format
- 6.1.2 Funcţii intrare / ieşire tip character
- 6.2 Fişiere binare
- Cap. 7 Structuri tip C
- Cap. 8 Clase
- 8.1 Definirea unei clase
- 8.1.1 Definirea unei clase
- 8.1.2 Pointerul this
- 8.1.3 Spaţii de nume
- 8.2 Constructori şi destructori
- 8.3 Funcţii prietene
- 8.4 Fişiere standard în C++
- Cap. 9 Supraîncărcarea operatorilor
- 9.1 Supraîncărcarea operatorului de atribuire
- 9.2 Supraîncărcarea operatorilor aritmetici
- 9.3 Supraîncărcarea operatorilor << şi >>
- Cap. 10 Moştenirea
- 10.1 Pointeri la obiecte
- 10.2 Moştenirea
- 10.3 Funcţii virtuale. Polimorfism
- 10.4 Date şi funcţii statice
- Cap. 11 Fişiere tip CPP
- 11.1 Fişiere text
- 11.1.1 Funcţii intrare / ieşire cu format
- 11.1.2 Funcţii intrare / ieşire tip caracter
- 11.2 Fişiere binare
- Cap. 12 Siruri tip C++
- Cap. 13 Tratarea excepţiilor
- 13.1 Excepţii
- 13.2 Excepţii lansate de funcţii
- 13.3 Excepţii standard
- Cap. 14 Aplicaţii
- 14.1 Funcţii de timp
- 14.2 Fire de execuţie
- Cap. 15 Biblioteca de şabloane standard
- 15.1 Funcţii generice
- 15.2 Vectori
- 15.3 Liste
Extras din curs
Cap 1. Reprezentarea informaţiilor
1.1 Reprezentarea numerelor întregi în sistemul binar
Un număr natural se reprezintǎ ca o colecţie de cifre. In sistemul poziţional, poziţia unei cifre determină ponderea cifrei în mărimea numărului. Fie numărul
Mărimea numărului natural corespunzător este:
unde: r>1 este baza, n este numărul de cifre, iar este cifra de pe poziţia i. Avem totdeauna In sistemul zecimal cifrele utilizate sunt 0, 1, 2, , 9. In sistemul binar cifrele utilizate sunt 0 şi 1, în sistemul octal 0, 1, 2, , 7, iar în sistemul hexazecimal cifrele utilizate sunt: 0, 1, 2, , 9,A,B,C,D,E,F unde: A=10, B=11, C=12, D=13, E=14 şi F=15. Cifrele sistemului binar se numesc biţi.
Conversia zecimal-binarǎ
Fie un numǎr natural reprezentat în sistemul binar
In partea dreaptă avem un polinom de puteri ale lui 2. Coeficientul este 0 sau 1. Din expresia de mai sus a numǎrului se observǎ cǎ cifrele , , etc se pot obţine ca resturile impǎrţirilor repetate ale numǎrului N cu 2. Vom nota:
şi vom scrie:
de unde deducem:
Vom scrie
de unde deducem:
Dupǎ n astfel de operaţii vom avea:
unde:
După cum se observǎ, resturile obţinute reprezintǎ chiar cifrele numǎrului binar.
Exemplu. Sǎ convertim numarul 14 din baza 10 în baza 2.
Avem deci:
Avem:
de unde obţinem:
In final:
de unde obţinem:
deci reprezentarea numǎrului 14 în binar este:
In acelaşi fel obţinem:
Algoritmul de conversie a unui numǎr din baza 10 în baza 2 este urmǎtorul:
1.
2.
3. cât timp
{
}
Resturile obţinute sunt cifrele numǎrului binar, primul rest fiind cifra cea mai puţin semnificativǎ.
Conversia din baza 10 în baza 8 sau 16 se face prin împǎrţiri repetate cu 8 şi respectiv 16.
Unitatea de bază a informaţiei în calculator este un octet sau byte, ce cuprinde 8 cifre binare (biţi). Numerele întregi se reprezintǎ în calculator pe 8, 16, 32 sau 64 de biţi. Având un număr în baza 2, pentru reprezentarea sa în baza 16 se grupează câte 4 cifre binare.
Exemplu.
Reprezentarea în baza 16 este importantǎ deoarece un octet poate fi reprezentat prin două cifre hexazecimale.
Având un numǎr în baza 2, pentru reprezentarea în baza 8 se grupează câte 3 cifre binare.
Exemplu.
Pentru verificare
Conversia unui număr din baza 16 în baza 2 se face reprezentând fiecare cifrǎ hexazecimalǎ prin 4 cifre binare.
Conversia unui numǎr din baza 8 în baza 2 se face convertind fiecare cifrǎ octalǎ prin 3 cifre binare. Pentru conversii de numere între bazele 2, 8, 10 şi 16 şi operaţii cu numere în aceste baze se poate folosi aplicaţia Calculator a sistemului de operare Windows.
Reprezentarea numerelor binare cu semn
In cazul numerelor binare cu semn, bitul cel mai semnificativ este bitul de semn. El este 0 pentru numere pozitive şi 1 pentru numere negative. Există trei reprezentǎri ale numerelor binare cu semn.
Reprezentarea în mǎrime şi semn
Numǎrul pozitiv X se reprezintǎ ca:
Numǎrul negativ X se reprezintǎ ca:
Exemple. Vom considera numere întregi reprezentate pe 8 biţi, un bit de semn şi 7 biţi ai numǎrului:
Număr zecimal Reprezentare binarǎ Reprezentare hexazecimalǎ
13 0000 1101 0D
-13 1000 1101 8D
25 0001 1001 19
-7 1000 0111 87
127 0111 1111 7F
-127 1111 1111 FF
Gama numerelor întregi reprezentabile pe un octet în mǎrime şi semn este [-127, 127].
Putem scrie formula de reprezentare a numerelor binare în mǎrime şi semn ca:
unde coeficientul are valoarea 0 sau 1. Primul bit va fi interpretat ca şi coeficientul lui
Reprezentarea în complement faţǎ de 1
Numǎrul pozitiv X se reprezintǎ în complement faţǎ de 1 ca:
Preview document
Conținut arhivă zip
- Curs Programare C++.doc