Koliko bitov uporabljamo v praksi?

V praksi moramo številu dodeliti določeno število bitov, še preden vemo, kako velika je številka. Pogosto uporabljamo 32 bitov ali 64 bitov, čeprav lahko uporabimo 16 bitov ali celo 128 bitov, če je to potrebno. Število bitov moramo določiti vnaprej, sicer računalnik ne more vedeti, kje se številka začne in kje konča.

Vsak sistem, ki shranjuje številke, mora narediti kompromis med številom bitov, uporabljenih za shranjevanje številke in obsegom vrednosti, ki jih je mogoče shraniti.

V nekaterih sistemih (kot sta programska jezika Java in C ter podatkovne baze) je mogoče določiti, kako natančno naj se številke shranjujejo; v drugih je natančnost shranjevanja določena vnaprej (na primer v elektronskih preglednicah).

Nekateri sistemi lahko delajo s poljubno velikimi številkami, tako da povečajo prostor, ki se uporablja za njihovo shranjevanje, ko je to potrebno (na primer cela števila v programskem jeziku Python). Vendar pa je zelo verjetno, da uporabljajo večkratnik od 32 bitov (na primer 64 bitov, 96 bitov, 128 bitov, 160 bitov itd.). Ko je številka prevelika, da bi ga lahko predstavili z 32 biti, ga računalnik prerazporedi tako, da uporabi 64 bitov.

V nekaterih programskih jezikih ni nobenega preverjanja, kdaj je številka prevelika in lahko pride do preliva (ang. overflow). Na primer, če imamo 8-bitno številko z dvojiškim komplementom, potem je 01111111 oziroma 127 največje število. Če mu prištejemo 1 brez preverjanja, se bo spremenilo v 10000000, kar je pravzaprav število -128. To lahko povzroči resne težave, če ne preverjamo prelivov in je vzrok različice problema Y2K, ki ga imenujemo Problem leta 2038. Ta problem vključuje prelivanje 32-bitne številke, kar bo vplivalo na datume v torek, 19. januarja 2038.

Vir slike: XKCD 571


Na majhnih računalnikih, vgrajenih v avtomobile, pralne stroje ali pri majhnih senzorjih, ki so komaj večji od zrna peska, moramo natančneje določiti, kako velika mora biti številka. Medtem ko računalniki običajno uporabljajo podatke, razdeljene na kose, ki obsegajo 32 bitov, bi lahko napisali program (na primer za potresni senzor), ki ve, da prvih 7 bitov predstavlja geografsko širino, naslednjih 7 bitov geografsko dolžino, naslednjih 10 bitov globino in zadnjih 8 bitov količino oziroma velikost sile.

Tudi pri običajnih računalnikih je pomembno skrbno premisliti o številu bitov, ki jih potrebujemo. Na primer, če imamo v podatkovni bazi polje, ki bi lahko imelo eno izmed štirih vrednosti »0«, »1«, »2« ali »3« (morda predstavlja štiri baze, ki se lahko pojavijo v zaporedju DNK) in bi vsakokrat uporabili 64 bitno številko za zapis vsakega podatka, bi se s povečevanjem podatkovne baze to seštevalo. Če bi imeli v svoji podatkovni bazi 10.000.000 elementov, in bi za vsakega izmed njih zapravili 62 bitov (za predstavitev štirih številk potrebujemo samo 2 bita), skupno 620.000.000 bitov, kar je približno 74 MB. Če podatkovna baza vsebuje mnogo takšnih polj, se bo to resnično poznalo – človeška DNK vsebuje okoli 3 milijarde baznih parov, zato je neverjetno potratno uporabiti več kot 2 bita za vsakega izmed njih.

Za aplikacije, kot je na primer Google Zemljevidi, ki shranjujejo astronomske količine podatkov, je takšno zapravljanje prostora popolnoma nesprejemljivo!