Obseg števil, predstavljenih z dvojiškim komplementom

Čeprav se na začetku zdi, da nobenega bita ne uporabljamo za predznak, ima najbolj levi bit dejansko vlogo predznaka. Če uporabljamo 8 bitov, lahko še vedno ustvarimo natančno 256 različnih kombinacij ničel in enic. Če poizkušamo uporabiti 8 bitov za predstavitev pozitivnih števil do 255 in negativnih števil do -255, bomo kmalu spoznali, da se nekatere številke preslikajo v iste kombinacije bitov. Očitno je zato nemogoče vedeti, katero število je dejansko predstavljeno!

V praksi lahko predstavljamo številke v naslednjih obsegih. Obseg nepredznačenih števil prikazuje, koliko številk lahko predstavimo, če dovoljujemo le pozitivne številke (predznak ni potreben), obseg predznačenih števil prikazuje, koliko številk v dvojiškem komplementu lahko predstavimo, če potrebujemo tako pozitivne kot negativne številke.

Te vrednosti lahko izračunamo iz obsega 8-bitnih vrednosti. Če shranjujemo nepredznačena števila, bodo vrednosti med 00000000 in 11111111 (t.j. vrednosti med 0 in 255 v desetiškem številskem sistemu), medtem, ko bodo vrednosti predznačenih števil, predstavljenih z dvojiškim komplementom, v obsegu od 10000000 (najmanjše število, -128 v desetiškem sistemu) do 01111111 (največje število, 127 v desetiškem sistemu). Čeprav se to zdi precej čudno vseeno deluje zelo dobro, saj lahko pri tej predstavitvi uporabljamo običajno dvojiško seštevanje, tudi če seštevamo negativna števila.

Uporabiš lahko tudi pretvornik, pri katerem izbereš število bitov, ki jih boš uporabil(-a) za predstavitev števila. Nato vpišeš še pozitivno ali negativno število ter klikneš gumb »Izračunaj«. Pretvornik bo nato izpisal obseg števil, ki jih lahko predstaviš z izbranim številom bitov ter dvojiško število, ki predstavlja pozitivno število, ali pa dvojiški komplement, ki predstavlja negativno število.


Število bitov Obseg nepredznačenih števil (pozitivna števila) Obseg predznačenih števil (dvojiški komplement)
8 bitov 0 do 255 -128 do 127
16 bitov 0 do 65.535 -32.768 do 32.767
32 bitov 0 do 4.294.967.295 −2.147.483.648 do 2.147.483.647
64 bitov 0 do 18.446.744.073.709.551.615 −9.223.372.036.854.775.808 do 9.223.372.036.854.775.807