Við vitum líklega öll að tölvan geymir öll sín gögn í binary, sem er bara röð af táknunum 0 og 1. Þetta kallast Base-2 talnakerfi, þar sem það er mest hægt að tákna 2 mismunandi tölur með einu tákni. Talnakerfið sem við notum (Tugakerfið) kallast þannig Base-10 (getum táknað 10 mismunandi tölur með bara einu tákni 0-9).
Tökum nú smá dæmi um tölur í base-2 kerfinu:
00 01 = 1
00 10 = 2
01 00 = 4
10 00 = 8
Við erum ansi fljót að sjá að í hvert skipti sem táknið 1 er fært um eitt sæti til vinstri, þá tvöfaldast talan sem röðin táknar. Af þessu getum við dregið að númer bitans talið frá hægri tákni veldisvísi, t.d. ef aftasti bitinn er settur á einn, þá er hægt setja það upp í formúluna (1 * 2^0) sem er jafnt og einn, ef biti númer tvö frá hægri væri settur á 1, þá væri sama formúla (1 * 2^1) = 2, biti númer 4 frá hægri væri (1 * 2^3) = 8. Við notum alltaf töluna 2 í veldinu “eitthvað” vegna þess að við erum að vinna með Base-2 kerfið, ef við værum með base-10 þá myndum við nota 10 í staðinn fyrir 2.
Þetta er býsna einfalt, til að fá út tölu táknuð með þessu kerfi þarf bara að reikna hvern bita með þessari formúlu og leggja svo útkomurnar saman. Tökum dæmi:
10 11
Við byrjum á aftasta bitanum og setjum upp í formúluna, og höldum áfram fyrir alla bitana:
(1 * 2^0) = 1, (1 * 2^1) = 2, (0 * 2^2) = 0, (1 * 2^3) = 8
Svo tökum við allar niðurstöðurnar og leggjum þær saman:
1 + 2 + 0 + 8 = 11
Þetta var einfalt er það ekki? Svona til að sýna fram á að þetta er ekki mjög ólíkt tugakerfinu okkar þá ætla ég að setja sömu formúlu á töluna 11.
(1 * 10^0) + (1 * 10^1) = 1 + 10 = 11
Nú ættu allir að gera sér grein fyrir að með því að bæta einum bita við röðina, þá tvöföldum við fjölda talna sem við getum geymt, tökum dæmi:
11 11 = 8 + 4 + 2 + 1 = 15 (16 tölur með núlli)
1 11 11 = 16 + 8 + 4 + 2 + 1 = 31 (32 tölur með núlli)
11 11 11 = 32 + 16 + 8 + 4 + 2 + 1 = 63 (64 tölur með núlli)
Ef við ætlum að breyta tugakerfis tölum (base-10) yfir í binary, þá er það ekki mikið flóknara. Þá deilum við tölunni með 2 þangað til ekkert er eftir, þetta er heiltöludeiling, þannig að það er engin komma, bara afgangur. Afgangurinn úr hverri tölu segir svo til um hvort hver biti sé settur á eða ekki. Vindum okkur í dæmi:
Breytum tölunni 13 í binary form:
13 / 2 = 6 afgangur = 1
6 / 2 = 3 afgangur = 0
3 / 2 = 1 afgangur = 1
1 / 2 = 0 afgangur = 1
Afgangurinn táknar bitaröðina, neðst er fremsti hlutinn, þannið að við getum sett alla bitana saman svona: 11 01 = 8 + 4 + 0 + 1 = 13
Tökum annað dæmi til öryggis:
Breytum núna 17
17 / 2 = 8 afgangur = 1
8 / 2 = 4 afgangur = 0
4 / 2 = 2 afgangur = 0
2 / 2 = 1 afgangur = 0
1 / 2 = 0 afgangur = 1
10 00 1 = 16 + 0 + 0 + 0 + 1 = 17
Talan 14
14 / 2 = 7 afgangur 0
7 / 2 = 3 afgangur 1
3 / 2 = 1 afgangur 1
1 / 2 = 0 afgangur 1
11 10 = 8 + 4 + 2 + 0 = 14
Nú ættu allir að þekkja binary tölurnar ágætlega og skilja hvernig þetta er uppbyggt. Einnig ættu allir að geta umbreytt tölum úr tugakerfinu yfir í binary, og öfugt. Þetta tel ég nauðsynlega kunnáttu fyrir alla forritara, þar sem ég tel að allir forritarar þurfi að nota þetta oftar en einu sinni á ævinni. Þið megið eiga von á einni grein til viðbótar um Base-2 kerfið, þar sem reikniaðgerðir verða útskýrðar, samlagning, frádráttur, margföldun og deiling. Þegar því er lokið þá kem ég með svosem eina grein um dæmi um notkun á þessu.