Gotovo sigurno ste čuli za negativne brojke. Ako ste bili malo izloženi svijetu informatike i računalnog programiranja, koncept binarnih brojeva nije posve stran. Ali, osim ako osobno niste istražili svijet programiranja, vjerojatno nikada niste suštinski radili s binarnim brojevima.
Budući da računala ne mogu samostalno "razmišljati" ili "odlučivati", već mogu slijediti naručene upute s nepromjenjivom točnošću, matematičari su davno došli osmisliti način na koji računala (ili dovoljno strpljivi ljudi) mogu zbrajati, oduzimati i druge matematičke operacije koristeći samo znamenke 0 i 1.
No postoji li način da se ove dvije ideje kombiniraju kako bi se proizveli negativni brojevi? Je li tako jednostavno kao reći stroju da zalijepi malu vodoravnu traku ispred postojećeg broja olovke i papira ili faktor "bitovi i bajtovi" više uključuju stvari?
Što su binarni brojevi?
Računala imaju ogromnu količinu procesorske snage, pa čak i stari čamac može izvoditi izračunavanja brzinom koja bi se čak i aritmetički nadarenom čovjeku činila nerazumljivom. Ali oni nisu mozak, a jedini način da ih se natjera da rukuju složenim informacijama jest prenijeti sve moguće u jedno od dva stanja, npr. UKLJUČENO ili ISKLJUČENO.
U "computer-ese", pojedinačni 0 ili 1 naziva se a malo. Grupe njih uključuju nybble (4 bita), dobro poznati bajt (8), riječ (1) i duga riječ (32).
Decimalni brojevi koje obično vidite, poput 492 i 35, jesu "baza-10", jer sadrže 10 progresivnih simbola (znamenke 0 do 9) koji "prevrnuti se" na slijedeće mjesto lijevo - sljedeća "snaga 10." Binarni brojevi, umjesto toga, uključuju samo dva simbola (znamenke 0 i 1) i jesu "baza-2". Svaki pomak ulijevo s kraja broja sve je veća snaga dva: krajnje znamenke predstavljaju 1, sljedeće 2, zatim 4, 8, 16 i tako dalje.
- Dekadski broj je bilo koji broj u sustavu base-10, ne nužno broj koji uključuje decimalnu točku.
Primjeri binarnih brojeva
Binarni "nybble" 0101 ima 1 na 1 i 4 mjestu, a 0 na 2 i 8 mjestu. Stoga je njegov decimalni ekvivalent 1 + 4 = 5.
Slično tome, bajt 1001 1100 ekvivalentan je 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
The upotpuniti, dopuna binarnog broja je samo broj s "zamijenjenim" znamenkama. Na primjer, dopuna 1001 1100 = 0110 0011.
Pretvaranje negativnih brojeva u binarne
Način pretvaranja negativnog decimalnog broja u binarni broj vjerojatno je prilično različit od ostalih numeričkih pretvorbi izvodili ste jer je vaš um, bez obzira na njegovu usporednu lijenost, na većinu načina puno fleksibilniji od bilo kojeg drugog CPU. Međutim, to je jednostavan postupak.
Pretvorba se vrši pomoću a binarni komplement dva, koji od programera zahtijeva da računalo uputi bilo koji binarni broj koji počinje s 1 kao negativan. Program onda konstruira odgovarajući pozitivan broj u binarnom obliku, uzima njegov komplement i dodaje jedan.
Na primjer, s obzirom na broj -47, računalo će stvoriti binarni broj za +47:
0001 1111
Dopuna ovoga je:
1110 0000
Dodavanjem jednog ovome dobivate:
1110 0001
Imajte na umu da je računalo ove brojeve "potpisalo" da bi vodeću 1 tretiralo kao negativnu i obrađivalo rezultate drugačije od jednostavnog zbrajanja potencijala 2 zauzetih simbolom 1.