U programiranju tip podatka se može okarakterisati kao atribut koji govori računaru nešto o vrsti podatka koji mu se prosleđuje. To podrazumeva ograničenja vezana za tu vrstu podataka kao što su skup vrednosti koje podatak može da ima i koje se operacije mogu izvršavati nad tom vrstom podatka. Najuobičajeniji tipovi podataka su celobrojni, logički, realni i nizovi karaktera, odnosno stringovi.
Primer ovoga je da sa celobrojnim vrednostima radimo u granicama od -9223372036854775808 do 9223372036854775807, kao i da ih možemo sabirati, oduzimati i množiti, ali ne i deliti bez eksplicitnog konvertovanja rezultata u realni broj. A ako bismo uzeli tip boje, taj podatak bi se sastojao od tri celobrojne vrednosti. Po jedan za crvenu, zelenu i plavu u granicama od 0 do 255, kao i da bismo ih mogli sabirati i oduzimati, ali ne i množiti. U najširem smislu, tip podatka definiše skup vrednosti i dozvoljenih operacijama nad tim vrednostima.
Osnovni tip je još u programiranju poznat kao ugrađen tip. U zavisnosti od jezika i njegove implementacije osnovni tipovi mogu, a i ne moraju da odgovaraju objektima u memoriji računara u korespodenciji jedan prema jedan. Ipak, prirodno je očekivati da su operacije nad osnovnim tipovima najbrže. Kao primer, sabiranje celobrojnih vrednosti se može izvesti pomoću samo jedne instrukcije (dodaj jedinicu toliko i toliko puta). Većina programskih jezika ne dozvoljava programeru da menja ponašanje ili mogućnosti osnovnih tipova.
Vrednost podatka celobrojnog tipa odgovara stvarnoj matematičkoj vrednosti istog broja. Reprezentacija tog podataka je način na koji se taj podatak čuva u memoriji. Oni mogu biti označeni (da dozvoljavaju da se koriste i negativne vrednosti) ili neoznačeni. Kako smo rekli ranije, podaci se najčešće čuvaju kao niz znakova 0 i 1, te ako bismo želeli da zapišemo u N polja te znakove mogli bismo da smestimo brojeva u tih N polja.
U zavisnosti od toga koliko znakova 0 i 1 grupišemo, imamo sledeće pojmove.
1-bit, 8-bajt, 16-polureč, 32-reč, 64-dvoreč, 128-četvororeč i uopšteno N-celobrojne vrednosti.
Dozvoljene operacije nad celobrojnim vrednostima su sabiranje, oduzimanje i množenje. Deljenje je specifično. Postoji takozvano celobrojno delenje koje daje kao rezultat ceo broj. Na primer 15/4 = 3, iako je to u stvari realni broj 3.75.
Ovaj tip se još zove i boolean i sastoji se od jednog bita koji uzima vrednosti 1, ako je tačan logički izraz, ili 0 ako taj logički izraz nije tačan. Operacije nad ovim tipom su operacije poređenja.
Na primer, da li je 2 < 3? Da li je 5 jednako sa 11? I slično.
Koriste se i operacije oblika:
Vrednost je tačna ako je ili jedno tačno ili je drugo tačno (disjunkcija). Vrednost je tačna ako je i jedno i drugo tačno (konjunkcija).
Takođe se koriste i operacije negacije nekog logičkog izraza. Slično se mogu formirati i složenije provere tačnosti.
Ovaj tip ima dva predstavnika, a to su realni brojevi sa fiksnim zarezom i sa pokretnim zarezom.
Kod fiksnog zareza, mana je što koliko god odvojili mesta za zapis broja i njegovog decimalnog dela nemamo dovoljnu tačnost iz tog razloga što smo deo posle zareza u startu ograničili na deo prostora koji koristimo za zapis broja u celosti. Primeri toga su:
| 2009.45898 |
| 0.84881151|87356
gde vertikalne linije obeležavaju fizičku granicu upisa cifara. Van tih linija, u drugom primeru, gubimo niz 87356 i na taj način smanjujemo preciznost.
Kod pokretnog zareza ta greška je znatno smanjena, jer se broj prikazuje tako da je prvo mesto odvojeno samo za glavnu cifru, dok se ostali deo koristi za ostale značajne cifre obezbeđujući na taj način povećanu tačnost.
Nad tipom realnih brojeva mogu se izvesti sve postojeće operacije. Dakle, sabiranje, oduzimanje, množenje i deljenje. Jedino bi trebalo imati na umu da nije dozvoljeno deljenje nulom.
Znakovni tip ili char, kako se još zove, može da sadrži pojedinačno slovo, cifru, znak interpunkcije ili kontrolni znak. Neki programski jezici imaju dve vrste znakovnog tipa. Jednobajtni za ASCII znakove i višebajtni za Unicode znakove. Znakovi se mogu kombinovati u nizove formirajući na taj način stringove. String može da sadrži i brojeve i slova, ali će broj biti tretiran kao tekst.
Neki programski jezici tretiraju stringove kao jednostavan niz znakova, dok ih neki tretiraju kao različite tipove. Čak neki programski jezici znakove tretiraju jednostvno kao jednočlane stringove. Literali su stringovi koji su uokvireni znakovima navoda i to ako su jednostruki (') onda je reč o čistim karakterima, a ako su korišćeni dvostruki navodnici (") reč je o stringovima..
Operacije koje se mogu izvesti nad stringovima su nastavljanje jednog stringa na drugi, otkidanje stringa s početka ili kraja drugog stringa, menjanje sadržaja i slično. Primeri znakova su:
Primeri stringova su:
Primer dodavanja i otkidanja stringa: