Datu mota osoa (integer bezala ezagutzen dena), konputazioan, zenbaki osoen azpimultzo finitoa adierazi dezaken datu mota da. Adierazi dezaken zenbakirik altuena datuak erabiltzen den lekuaren araberakoa da, eta zenbaki negatiboak adieraztea posiblitatearena. Erabil ditzakegun datu mota osoak eta haien tamaina lengoairen eta arkitekturaren araberakoak dira. Adibidez, zenbaki osoak gordetzeko memorian 4 byte baditugu:

4 Byte = 4x8 = 32 bit
32 bitekin 232=4294967296 balore adieraz daitezke:
  • Positiboak bakarrik (osoak zeinurik gabe): 0tik 4294967295ra
  • Positibo eta negatiboak (osoak zeinuarekin): -2147483648tik 2147483647ra

Eragiketak zenbaki osoekin aldatu

Datu mota osoekin ohiko aritmetika eragiketak egin daitezke: batuketa, kenketa, biderketa eta zatiketa. Zatiketaren kasuan, emaitza balore erreal bat izan daiteke eta ez du zertan zenbaki osoa izan. Kasua hori bada, eta emaitza datu mota oso bezala adierazi behar denez, atal hamartarra ezabatu beharko zaio. Bi metodo daude hau burutzeko:

Datu mota osoekin egin daitekeen beste eragiketa ez ohiko bat, modulua izango litzateke, zatiketa oso baten hondarra:

184 zati 3 = 61 (hondarra 1) --> 184 modulu 3 = 1

Modulu eragiketak honako propietate hauek betetzen ditu:

a mod b = c
  • c ≥ 0
  • c < b
  • c, 0 bada --> a, b-ren multiploa da
  • c, 0 bada eta b berdin 2n (n 0 baino handiago edo txikiago den zenbaki osoa izanda) --> a (Bikoitia da)

Gainezkatzea (overflow) aldatu

Ordenagailu programa batek datu mota oso bati esleitu ez daiteken balorea esleitzen badio, eremuaren muga gainditzen duelako ( a=240 adibidez), gainezkatzea deritzon errorea agertuko da (overflow ingelesez). Hau gertatzen denean, normalean programak funtzionatzen jarraitzen du, baina baloreak 0 balioa hartuko du. Zenbaki negatibo bat datu mota oso positibo bati esleitzen bazaio, hau positibo bihurtuko da.

Ikus, gainera aldatu

Kanpo estekak aldatu