Tipuri de date

Tipuri de date

În informatică și programare, un tip de date sau pur și simplu tip este o clasificare ce identifică diferitele tipuri de date, cum ar fi: numere reale, numere întregi sau valori logice(adevărate sau false), valori posibile pentru acest tip; operațiunile care pot fi efectuate pentru valorile de acest tip; sensul datelor; și modul în care valorile de acest tip pot fi stocate
Tipurile de date sunt utilizate în "sisteme de tip" , care oferă diferite moduri de definire, implementare și folosire. Diferite sisteme de tip asigură grade diferite de "siguranță de tip".
Aproape toate limbajele de programare includ în mod explicit noțiunea de tip de date, totuși diferite limbaje pot folosi o terminologie diferită. Tipurile de date comune pot include:
  • Numere întregi 
  • Valori logice 
  • Caractere 
  • Numere cu virgulă
  • Șiruri de caractere alfanumerice
De exemplu, în limbajul de programare Java , "int" reprezintă setul de numere întregi reprezentate pe 32 de biți cuprinse ca valoare între -2.147.483.648 și 2,147,483,647, precum și operațiile care pot fi efectuate cu numere întregi, cum ar fi adunarea, scăderea, sau înmulțirea. Culorile, pe de altă parte, sunt reprezentate de trei octeți care indică cantitățile de roșu, verde și albastru, și un șir de caractere reprezentând numele culorii; operațiunile permise includ adunarea și scăderea, dar nu înmulțirea.
Cele mai multe limbaje de programare, permit de asemenea, programatorului să defineasca tipuri de date suplimentare, de obicei, prin combinarea mai multor elemente de alte tipuri și definirea operațiunilor valide pentru noul tip de date. De exemplu, un programator ar putea crea un nou tip de date numit " număr complex ", care ar include componente reale și imaginare. Un tip de date reprezintă, de asemenea, o constrângere pusă pe interpretarea datelor într-un " sistem de tip " , care descrie reprezentarea, interpretare și structura de valori sau obiecte stocate în memoria calculatorului. Sistemul de tip utilizează informațiile tipului de date pentru a verifica corectitudinea programelor de calculator care accesează sau manipulează datele.
Cele mai multe tipuri de date din statistică au tipuri comparabile în limbajele de programare, și vice-versa, așa cum se arată în tabelul de mai jos:

StatisticăProgramarea calculatoarelor
numere realevirgulă mobilă
contor de date (de obicei, non-negativ)întreg
date binareTip logic
date categoricetip enumerat
vector aleatorListă sau matrice
matrice aleatoarematrice bidimensională
arbore aleatorArbore

Tipuri de date mașină

La cel mai scazut nivel, toate datele din computerele bazate pe electronică digitală sunt reprezentate ca biți care pot lua valoarea 0 sau 1. Cea mai mică unitate adresabilă de date este, de obicei, un grup de biți numit octet sau byte (un octet (byte), contine 8 biți). Unitatea ce poate fi prelucrată de instrucțiunile codului mașină este numită cuvânt (din 2011, de obicei conține 32 sau 64 de biți). Majoritatea instrucțiunilor interpretează cuvântul ca un număr binar, astfel încât un cuvânt de 32 biți poate reprezenta valori fără semn întregi de la 0 la 2^{32}-1 sau valori întregi cu semn de la -2^{32} la 2^{32}-1. Datorită complementului binar, limbajul mașină și ca atare mașina nu trebuie să se facă distincția între aceste tipuri de date cu semn și cele fără semn în cea mai mare parte.
Există un set specific de instrucțiuni aritmetice, virgula mobilă care folosesc o interpretare diferită a biților în cuvânt.
Tipurile de date mașină trebuie să fie expuse sau puse la dispoziție în sisteme sau în limbajele de programare de nivel scăzut , pentru a permite un control cu granulatie fina pe hardware. Limbajul de programare C , de exemplu, oferă tipuri de număr întreg cu lățimi diferite, cum ar fi short și long. În cazul în care un tip nativ corespunzător nu exista pe platforma vizată, compilatorul le va descompune în cod folosind tipuri de date existente. De exemplu, dacă un întreg pe 32 de biți este cerută pe o platformă de 16 biți,compilatorul îl va trata tacit ca o serie de două numere întregi de 16 biți.
Mai multe limbaje permit declaratii ale datelor in sistem binar și sistem hexazecimal, pentru o manipulare mai ușoară a datelor mașină.
În limbajele de programare de nivel superior, tipurile de date mașină sunt de multe ori ascunse sau abstractizate ca un detaliu de implementare, care ar face codul mai puțin portabil dacă ar fi expuse. De exemplu, un tip numeric generic poate fi furnizat în loc de tipuri întregi cu diferite lungimi de biți.

Tip logic

Tipul Boolean reprezintă valorile: adevărat și fals . Deși doar două valori sunt posibile, ele sunt rareori puse în aplicare ca o singură cifră binară din motive de eficiență. Multe limbaje de programare nu au un tip boolean explicit, ci interpretează (de exemplu) 0 ca fiind fals și a alte valori ca adevărat.

Tipuri numerice

  •  Tipurile de date întregi, care pot reprezenta numere întregi. Pot fi clasificate în funcție de capacitatea lor de a conține valori negative (de exemplu, unsigned în C și C + +). Pot avea, de asemenea, un număr mic de subtipuri predefinite (cum ar fi short și long în C / C + +); sau permite utilizatorilor să definească în mod liber subintervale, cum ar fi 1 .. 12 (de exemplu,Pascal / Ada ).
  • Virgulă mobilă tipuri de date, numite uneori eronat reale, conțin valori fracționare. Ei au, de obicei limite predefinite atat pentru valorile extreme cât și pentru precizia lor. Acestea sunt adesea reprezentate ca numere zecimale.
  • Tipuri de date "punct fix" sunt convenabile pentru a reprezenta valori monetare. Ele sunt adesea reprezentate intern ca numere întregi, ceea ce duce la limite predefinite.
  • Bignum sau de precizie arbitrară sunt tipuri numerice fără limite predefinite. Ele nu sunt tipuri primitive, și sunt utilizate cu moderație, din motive de eficiență.

Tipuri de compozite


Tipuri de compozite sunt derivate din mai mult de un tip primitiv. Aceasta se poate face în mai multe moduri. Modalitățile în care sunt combinate sunt numite structuri de date . Compunerea unui tip primitiv într-un tip de compus rezultă în general într-un nou tip, de exemplu, cu matricea de-întreg este un tip diferit la număr întreg.
  • Un tablou stochează o serie de elemente de același tip într-o anumită ordine. Acestea sunt accesate folosind un întreg pentru a specifica care este necesar elementul (deși elemente pot fi de aproape orice tip). -Lungime fixă ​​sau extensibilă matrice poate fi.
  • Înregistrare (de asemenea, numit tuplu sau struct) Înregistrările sunt printre cele mai simple structuri de date . O înregistrare este o valoare care conține alte valori, de obicei în număr fix și ordine și de obicei indexate după numele. Elementele de înregistrări sunt de obicei numite domenii sau membri.
  • Uniune . O definiție de tip uniune va specifica care dintre o serie de tipuri primitive permise pot fi stocate în cazurile sale, de exemplu ", float sau întreg lung". Contrast cu o înregistrare , care ar putea fi definit pentru a conține un flotor și un întreg; în timp ce, într-o uniune, există doar o singură valoare la un moment dat.
  • O uniune etichetat (de asemenea, numit o variantă , înregistrare variantă, discriminați uniune, sau uniune disjuncte) conține un câmp suplimentar care indică tipul de curent, pentru siguranță sporită tip.
  • Un set este o structură de date abstract , care poate stoca anumite valori, fără nici un fel special ordine , și nu valori repetate. Valori înșiși nu sunt preluate de la seturi, mai degrabă unul testează o valoare de membru pentru a obține un boolean "în" sau "nu".
  • Un obiect conține un număr de câmpuri de date, cum ar fi un record, și, de asemenea, o serie de fragmente de cod de program pentru a accesa sau de a le modifica. Structuri de date care nu conțin cod, cum ar fi cele de mai sus, sunt numite simplu structură de date vechi .

Caractere și șiruri de caractere

Tipurile caracter și șir de caractere pot stoca secvențe de caractere dintr-un set de caractere, cum ar fi ASCII sau UTF-8. Deoarece cele mai multe seturi de caractere includ cifre, este posibil să existe un șir numeric, cum ar fi "1234". Cu toate acestea, mai multe limbaje ar trata acest șir ca aparținând unui tip diferit, cu valoarea numerică 1234.
Tipurile caracter și șir de caractere pot avea diferite subtipuri în funcție de mulțimea necesară de caractere. Tipul original pe 7-biti, ASCII, s-a dovedit a fi limitat, și a fost înlocuit cu seturi de 8 și 16 biți, (UTF-8UTF-16) care poat codifica o mare varietate de alfabete non-latine (ebraicăchinezăjaponezăarabă ) și alte simboluri. Sirurile de caractere pot fi fie alocate dinamic sau de dimensiune fixă, chiar în cadrul aceluiași limbaj de programare. Ele pot fi, de asemenea, categorizate prin dimensiunea lor maximă.
Notă: siruri de caractere nu sunt primitive în toate limbajele, de exemplu în C, ele pot fi compuse din tablouri de caractere.

Комментариев нет:

Отправить комментарий