Lite om det binära

Det decimala och binära talsystemet.

I vårt dagliga liv använder vi oss av det decimala talsystemet. Det består av tio symboler (0 - 9) och man säger att det har basen tio. Exempelvis kan 2179 skrivas; 2*103 + 1*102 + 7*101 + 9*100 eftersom 2*103 = 2000, 1*102 = 100, 7*101 = 70 och 9*100 = 9 (vilket tal som helst med exponenten 0 är lika med 1). Vid decimaltal använder man negativa exponenter. 3,1415 blir då: 3*100 + 1*10-1 + 4*10-2 + 1*10-3 + 5*10-4. För att undvika förväxling med andra talsystem - när man pratar "ettor" och "nollor" - används index 10: 217910.

Det binära talsystemet (bi=2) har två symboler, 0 och 1, med basen 2 och index 2. Ett binärt tal som 1010112 skrivs decimalt;
1*25 + 0*24 + 1*23 + 0*22 * 1*21 + 1*20 = 4310
Om nu det binära talet är 101.1012 går vi till väga på samma sätt som med det decimala;
1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 = 5,62510

En symbol (0 eller 1) kallas för en bit (b), från engelskans Binary digIT. I datorsammanhang pratar man ofta om byte (B). En byte består av 8 bitar, som även kallas för en oktett. Varje tecken (bokstav, siffra, snabel-a, snedstreck osv) representeras av 8 stycken 1:or och 0:or. Så, när man säger att överföringshastigheten är ex. vis 40 kbps (kilobit per sekund) måste man dividera med 8 för att få det i kBps dvs 5000 tecken/sekund.

Från decimalt till binärt.

Om du ska göra om talet 217910 till binärt så glöm oktetterna ett tag och "bygg på" tabellen från vänster - 2n - för att komma fram till rätt exponent.
Vi börjar med 212. Det blev för mycket; 4096. Då kan vi pröva; 211 (hälften av 4096!). 2048. OK, då vet vi att det är 12 bitar - glöm inte 20. (För övrigt är vad som helst upphöjt till 0 alltid 1.) Antingen kan du hålla allt i huvudet eller, om du som jag har halvtaskigt minne, skriva en tabell som den jag gjort och räkna ut vilka som ska vara "av" eller "på".

X X X X X X X X X X X X X
212 211 210 29 28 27 26 25 24 23 22 21 20
4096 2048 1024 512 256 128 64 32 16 8 4 2 1
Av Av Av Av Av Av Av Av Av
ger ger ger ger ger ger ger ger ger ger ger ger ger
0 1 0 0 0 1 0 0 0 0 0 1 1
Genom tabellen får vi fram att 217910 = 1 0 0 0 1 0 0 0 0 0 1 1
(2048 + 128 + 2 + 1 = 2179)

Så, hur mycket är klockan?

Efter denna korta introduktion tänkte jag försöka förklara den binära klockan. Om du blev förvirrad av ovanstående så glöm det du läste och koncentrera dig på följande:

Man utgår från höger när man bestämmer värdet på varje bit, rättare sagt från första heltalet, i varje oktett.


Som du ser är klockan indelad i tre delar,
den första delen (5 bitar) är timmar,
den andra (6 bitar) är minuter och
den tredje (6 bitar) är således sekunder.


Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1
1 1 1 1 1 1 1 1
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1

Säg att den binära tiden är: 10111 (Tim), 111001 (Min) och 110011 (Sek). Då kan vi läsa av tabellen:
10111 = 1*24 + 0*23 + 1*22 + 1*21 + 1*20 = 16 + 0 + 4 + 2 + 1 = 23 tim
111001 = 1*25 + 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = 32 + 16 + 8 + 0 + 0 + 1 = 57 min
001110 = 1*25 + 1*24 + 1*23 + 0*22 + 0*21 + 0*20 = 0 + 0 + 8 + 4 + 2 + 0 = 14 sek
Klockan är alltså; 23:57:14

Varför visas inte klockan i oktetter?

Antagligen har du redan listat ut det!

Data skickas alltid i oktetter (8 bitar binärt) och det gäller även klocktiden. Detta för att "datorn" ska veta när ett tecken slutar och nästa börjar. Men när man ska visa tiden i binär form är det onödigt att visa alla åtta bitarna. De tre respektive två sista (första från vänster) bitarna kommer ju ändå alltid att vara 0, klockan kan ju aldrig visa mer än 24 tim eller 60 min eller 60 sek.

Å meningen med den binära klockan?

Pja, säg det. Lite värdelöst vetande bara ;-)



"Heta kvinnor och kallt kaffe spar tid."
Jarl Kulle