Talsystem decimal-binär

Datorer och liknande maskiner arbetar med ettor och nollor och deras språk kallas maskinspråk. Även om endast används ettor och nollor begränsar inte att datorer och liknande maskiner kan utföra avancerade och komplexa matematiska beräkningar. Det är därför bör vi bekanta oss med det binära talsystemet men även hexadecimala. Vi måste kunna använda det ena eller det andra, vi måste också kunna omvandla tal från det ena till det andra. Alla kalkyleringar kan göras med hjälp av något hjälpmedel men först ska de göras helst utan.

Att lära sig att konvertera binär till decimal kräver en förståelse för den matematiska grundkoncept för ett numreringssystem som kallas positionsnotation. Positionsnotation innebär att en siffra representerar olika värde beroende på positionen den upptar. Mer specifikt betyder detta att siffrans värde multipliceras med basen och exponenten. Till exempel, det decimala talet 245 kan uttryckas så här:

245 = (2 * 102) + (4 * 101) + (5 * 100) eller 245 = (2 * 100) + (4 * 10) + (5 * 1)

Binära talsystemet

I det binära talsystemet är basen 2, det vill säga att endast två siffror används 1 och 0. I det binära systemet börjar exponenter vänster till höger. Det innebär att varje position representeras med stigande potenser av 2.

Bild 1: Binära talsystem

Exponenten startas från 0 till det antal bitar som ingår i talet:

  • 4 bitar kallas 1 nibble
  • 8 bitar kallas 1 oktett
  • x bitar kallas 1 byte 

Termen ”byte” eller grupp av bitar har blivit vanligare som 8 bitar. Till exempel en IPv4 adress består av fyra oktett eller fyra byte.

Bild 2: Binära oktett

Datorer och nätverkshanterare identifieras med flera adresser  i ett nätverk, fysiska och logiska. Den logiska identifieringen består av 32 bitar (32 st. ettor och nollor) och kallas IP adresser version 4, eller bara IPv4. Dessa bitar grupperas i byte och då utformas 4 grupper/byte/oktett, ordnade från vänster till höger i första, andra, tredje och fjärde oktett. Oktetten mellan separeras med en punkt.

I tabellen nedan illustreras hur decimala tal 192, 168, 10 och 1 omvandlas till binära talet som visas i bild 2.

Vikt 27 26 25 24 23 22 21 20
Värde per vikt  128 64 32 16 8 4 2 1
128 + 0 + 32 + 0 + 8 + 4 + 0 + 0 = 192  1 0 1 0 1 1 0 0
128 + 0 + 32 + 0 + 8 + 0 + 0 + 0 = 168 1 0 1 0 1 0 0 0
0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 = 10 0 0 0 0 1 0 1 0
0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1 0 0 0 0 0 0 0 1

Vi tar en annan IPv4 adress och omvandlar den till binärt: 172.16.4.20?

Omvandlingen gör jag med en annan metod där JA är lika med 1 och NEJ är lika med 0.

172 är större eller lika med 128? JA 1 172 – 128 = 44
 44 är större eller lika med 64? NEJ 0  
44 är större eller lika med 32? JA 1 44 – 32 = 12
12 är större eller lika med 16? NEJ 0  
12 är större eller lika med 8? JA 1 12 – 8 = 4
4 är större eller lika med 4? JA 1 4 – 4 = 0
0 är större eller lika med 2? NEJ 0  
0 är större eller lika med 1? NEJ 0  
         
172 10101100      

I exemplet ska man börja med frågan

  • om talet (172) är större eller lika med 128, om Ja antecknar man 1.
  • Därefter utför en subtraktion 172 – 120 = 44
  • Därefter är frågan om 44 är större en 64, svaret är Nej och då antecknar man 0.
  • Man frågar sig igen om 44 är större eller lika med 32, svaret är nu Ja eller en 1.
  • Därefter utför en subtraktion 44 – 32 = 12 och nu är frågan om 12 är större än 16 o.s.v