Det binære talsystem kommer du nok ikke til at bruge direkte, når du programmerer. Men –det er godt at kende til. For det er alfabetet i det ”sprog”, som dit programmeringssprog (for eksempel Java) bliver oversat til i computeren, når den skal reagere på dine kommandoer.
Umiddelbart kan det virke mærkeligt, at der findes andre talsystemer end det, vi bruger til daglig. Det talsystem, der hedder titalssystemet eller decimalsystemet. Hvorfor kan vi ikke bare nøjes med det? Hvorfor findes der også det binære talsystem og det hexadecimale talsystem – og mange andre?
Det skyldes simpelthen, at de hver især er gode til forskellige ting.
Godt til hverdagsbrug – eller godt til computere
Vores almindelige titalssystem er for eksempel godt til hverdagsbrug, fordi det let kan bruges til at tælle og at regne med hverdagsting som pærer og bananer. Og man kan bruge sine ti fingre til at hjælpe med udregningerne.
Det binære talsystem består kun af 0’er og 1-taller, og det passer godt til at bruge i computer-sammenhæng: En computer er nemlig et elektrisk kredsløb, der kun kender til to tilstande: tænd og sluk. Så det er let at oversætte til, at 0 kan repræsentere tilstanden sluk, mens 1 repræsenterer tænd.
Derfor er det binære talsystem fundamentet for al den information, som din computer får ind og behandler.
Bit og transistorer
En computer kender altså kun tilstandene tænd og sluk. De symboler, som vi bruger for de to tilstande er henholdsvis 1 og 0. Alle slags data – tal, bogstaver og så videre – bliver oversat til 0’er og 1-taller inde i computeren.
Men hvordan foregår det?
Forestil dig, at du har skrevet noget kode og sendt det til din computer. Koden bliver oversat af en compiler til 0’er og 1’taller (det binære talsystem) – det kaldes også ”maskinkode”.
Hvert eneste 0 og hver eneste 1-tal, bliver lagret i bit i computeren (En bit er den allermindste lagringsenhed for information). En bit er en ledning med høj eller lav spænding. Den kan altså være tændt eller slukket.
Hvis bit’en lagrer et 0, så vil spændingen være meget lav. Hvis bit’en derimod lagrer et 1-tal, så vil spændingen være høj.
Bit’en – eller ledningen – er forbundet til en transistor. Og når spændingen er høj (ved et 1-tal), så vil transistoren reagere ved at lade strøm passere igennem. Hvis spændingen er lav, så vil det ikke skabe nogen reaktion i transistoren.
Så – for lige at opsummre: Den kode, som du skriver, bliver oversat til 0’er og 1-taller. 1-tallerne gør, at der løber strøm igennem transistoren. Mens 0’erne ikke skaber nogen reaktion.
Der findes mange millioner transistorer inde i din computer, og derfor kan den behandle så store mængder information.
Hvad er det binære talsystem så?
Men – hvordan oversætter computeren så vores almindelige tal og bogstaver til det binære talsystem?
Jeg havde lettest ved at forstå, hvad det binære talsystem går ud på ved at tage udgangspunkt i det talsystem, som jeg allerede kender til – altså titalssystemet.
Jeg har faktisk aldrig spekuleret over, hvorfor at vi som små børn lærer at tælle til 10 og derefter til 20 og så til 100. Naturen og verden er jo ikke delt op i enheder af 10. Årsagen er nok den enkle, at vi har 10 fingre. Så det er let at tælle, let at huske og let at lære videre.
Vi kunne med andre ord lige så godt have brugt det binære talsystem i hverdagen. Men titalssystemet giver mest mening for os.
Så et talsystem skaber altså en struktur, der gør det let at afgrænse enheder, måle dem og regne med dem.
Sådan fungerer vores talsystem – titalssystemet
Alt det her ved du nok allerede: Enhederne i vores talsystem består af tal fra 0 til 9. Det vil altså sige 10 tal i alt.
Når et tal består af flere cifre, så er hvert ciffers placering rigtig vigtig. For placeringen afgør, hvor stor en værdi det har. For eksempel har det stor betydning, om et 8-tal står sådan: 08 eller sådan: 80 eller sådan: 800.000.
Det, der sker er, at vi ganger (multiplicerer) et ciffer med 10 (som vi ganger med sig selv det antal gange, der svarer til det nummer i rækken, som cifferet står på):
Lad os som eksempel se på tallet 8467.
7 står på plads 0. Derfor siger vi (uden at tænke over det): 7 * (10^0) = 7
6 står på plads 1.Derfor siger vi: 6 * (10^1) = 60
4 står på plads 2. Derfor siger vi: 4 * (10^2) = 400
8 står på plads 3. Derfor siger vi: 8 * (10^3) = 8000
Det endelige regnestykke er derfor 7 + 60 + 400 + 8000 = 8467
Når vi er bevidste om, hvordan vores titalssystem fungerer, så er det let at forstå, hvordan det binære talsystem er bygget op:
Sådan fungerer det binære talsystem
Det binære talsystem består kun af to tal – 0 og 1. Alligevel kan vi sagtens ”oversætte” tallene fra det binære talsystem til vores titalssystem. Og det er meget enkelt at gøre. Vi skal bare indsætte et 2-tal i stedet for et 10-tal. Lad os for eksempel tage tallet 1001:
Vi læser tallet fra højre mod venstre, lige som ved vores eget talsystem.
1 står på plads 0. Derfor siger vi: 1 * (2 ^ 0)= 1
0 står på plads 1. Derfor siger vi: 0 * (2 ^ 1) = 0
0 står på plads 2. Derfor siger vi: 0 * (2 ^ 2) = 0
1 står på plads 3. Derfor siger vi: 1 * ( 2 ^ 3)= 8
Det endelige regnestykke er 1 + 0 + 0 + 8 = 9
Her er en tabel over de første tal i rækken – resten kan du selv regne ud:
0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
20 = 10100