Ordet bi betyder två och det menas att två symboler används för att bilda binära tal {0, 1}. Detta gör att basen för det binära talsystemet är just 2. Basen höjs upp till exponenter (0, 1, 2, 3, 4 osv.), antal exponenter beror på antal bitar som används. Till exempel 4 bitar kallas för nibble och 8 bitar kallas för byte.
Det binära talsystem grundas precis som andra talsystem i fasta bestämda platser för olika värde. Därmed definitionen av talsystem grundas i ett positionssystem.
Positionsvärde | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | Decimalt |
Vikt | 8192 | 4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
Nibble | 1 | 1 | 1 | 0 | 14 | ||||||||||
Byte eller oktett | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 235 | ||||||
Mer än 8 bitar | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 14607 |
Konverteringar eller omvandlingar
För att konvertera eller omvandla ett decimal tal till ett binärt tal kan användas olika metoder. Här demonstreras två av de metoderna:
Exempel: Omvandla det decimala talet 172 till binärt. Detta kan betecknas också så här: 17210 = X2
Metod 1 Subtraktion: Först använder vi en liknande tabell som ovan:
29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | |
Vikt/positionsvärde | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Hitta närmaste talet | x | x | x | x | ||||||
Subtrahera | 172 – 128 | 44 – 32 | 12 – 8 | 4 – 4 | ||||||
44 | 12 | 4 | 0 | |||||||
Binära talet | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
Svar: 17210 = 101011002
Övning 1: Omvandla tal från det decimala talsystem till det binära talsystem.
- 3210
- 20010
- 3510
- 14310
- 55610
Lösning för övning 1: Hitta närmaste eller lika med talet i tabellen och subtrahera. Upprepa proceduren.
210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | |
Vikt/positionsvärde | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
3210 | |||||||||||
Hitta närmaste talet | x | ||||||||||
Subtrahera | 32-32 | ||||||||||
0 | |||||||||||
Binära talet | 1 | 0 | 0 | 0 | 0 | 0 | |||||
20010 | |||||||||||
Hitta närmaste talet | x | x | x | ||||||||
Subtrahera | 200-128 | 72-64 | 8-8 | ||||||||
72 | 8 | 0 | |||||||||
Binära talet | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | |||
3510 | |||||||||||
Hitta närmaste talet | x | x | x | ||||||||
Subtrahera | 35-32 | 3-2 | 1-1 | ||||||||
3 | 1 | 0 | |||||||||
Binära talet | 1 | 0 | 0 | 0 | 1 | 1 | |||||
14310 | |||||||||||
Hitta närmaste talet | x | x | x | x | x | ||||||
Subtrahera | 143-128 | 15-8 | 7-4 | 3-2 | 1-1 | ||||||
15 | 7 | 3 | 1 | 0 | |||||||
Binära talet | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |||
55610 | |||||||||||
Hitta närmaste talet | x | x | x | x | |||||||
Subtrahera | 556-512 | 44-32 | 12-8 | 4-4 | |||||||
44 | 12 | 4 | 0 | ||||||||
Binära talet | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | |
Metod 2: Dela talet med 2, om resultatet är jämt då är Modulus noll. Men om resultatet har decimaler som är minst 5 eller högre ger som Modulus en 1 och du drar av decimaldelen innan du fortsätter med divisionen. Omvandlingen är Modulus nerifrån uppåt (se pilen uppåt), då läses värden från botten till toppen.
Division | Resultat | Modulus | |
172 / 2 | 86,0 | 0 | ↑ |
86 / 2 | 43,0 | 0 | ↑ |
43 / 2 | 21.5 | 1 | ↑ |
21 / 2 | 10.5 | 1 | ↑ |
10 / 2 | 5.0 | 0 | ↑ |
5 / 2 | 2.5 | 1 | ↑ |
2 / 2 | 1.0 | 0 | ↑ |
1 / 2 | 0.0 | 1 | ↑ |
17210 | 101011002 |
Övning 2: Omvandla tal från det decimal talsystem till det binär talsystem.
- 4910
- 20010
- 14310
- 31010
Lösning för övning 2: Dividera talet med 2. Om det decimala delen i resultatet är lika eller större än 5 anteckna en 1, annars 0. Upprepa proceduren med heldelen av talet tills det blir 0. Det binära talet läses av nerifrån uppåt. I tabellen antecknas Modulus som procenttecken.
Division | = | % | Division | = | % | Division | = | % | Division | = | % | ||||
49 / 2 | 24.5 | 1 | ↑ | 200 / 2 | 100.0 | 0 | ↑ | 143 / 2 | 71.5 | 1 | ↑ | 310 / 2 | 155.0 | 0 | ↑ |
24 / 2 | 12.0 | 0 | ↑ | 100 / 2 | 50.0 | 0 | ↑ | 71 / 2 | 35.5 | 1 | ↑ | 155 / 2 | 77.5 | 1 | ↑ |
12 / 2 | 6.0 | 0 | ↑ | 50 / 2 | 25.0 | 0 | ↑ | 35 / 2 | 17.5 | 1 | ↑ | 77 / 2 | 38.5 | 1 | ↑ |
6 / 2 | 3.0 | 0 | ↑ | 25 / 2 | 12.5 | 1 | ↑ | 17 / 2 | 8.5 | 1 | ↑ | 38 / 2 | 19.0 | 0 | ↑ |
3 / 2 | 1.5 | 1 | ↑ | 12 / 2 | 6.0 | 0 | ↑ | 8 / 2 | 4.0 | 0 | ↑ | 19 / 2 | 9.5 | 1 | ↑ |
1 / 2 | 0 | 1 | ↑ | 6 / 2 | 3.0 | 0 | ↑ | 4 / 2 | 2.0 | 0 | ↑ | 9 / 2 | 4.5 | 1 | ↑ |
4910 | 1100012 | 3 / 2 | 1.5 | 1 | ↑ | 2 / 2 | 1.0 | 0 | ↑ | 4 / 2 | 2.0 | 0 | ↑ | ||
1 / 2 | 0 | 1 | ↑ | 1 / 2 | 0 | 1 | ↑ | 2 / 2 | 1.0 | 0 | ↑ | ||||
20010 | 110010002 | 14310 | 100011112 | 1 / 2 | 0 | 1 | ↑ | ||||||||
31010 | 100110110 |
Decimala tal till binära
Hittills har vi omvandlat decimala heltal till binära tal. Nu omvandlar vi decimaltal som har heldelen och decimaldelen till binära tal till exempel 13.37510. Se tabellen nedan som inkluderar tal som har decimaldelen.
…. | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | . | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 |
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | . | 1/2 | 1/4 | 1/8 | 1/16 | 1/32 | |
. | 0.5 | 0.25 | 0.125 | 0.0625 | 0.03125 | |||||||||||
13.37510 | 1 | 1 | 0 | 1 | . | 0 | 1 | 1 |
Det finns säker flera andra metoder, men tabellen ovan tycker jag att den hjälper effektivt. Nackdelen är att man måste ha tabellen till hands.
Metod 1: Separera hel del och decimaldelen och omvandla de separat, se tabellen ovan.
Metod 2: En annan lösning för att 13.37510 konverteras till binära tal är följande:
- Omvandla heldelen och decimaldelen separat.
- Heldelen divideras med 2 och när decimaldelen är .5 antecknas en 1 i kolumnen Modulus (%), annars 0.
- Upprepa proceduren tills heldelen går inte att dividera med 2
- Anteckna heldelen som binär genom att läsa kolumnen Modulus nerifrån uppåt.
- Decimaldelen multipliceras med 2 och antecknar heldelen i Modulus.
- Upprepa proceduren tills den decimala delen är noll.
- Resultatet med ettor och nollor läses uppifrån nedåt.
Division | = | % | . | Multiplikation | = | % | ||
13 / 2 | 6.5 | 1 | ↑ | 0.375 x 2 | 0.75 | 0 | ↓ |
|
6 / 2 | 3.0 | 0 | ↑ | 0.75 x 2 | 1.5 | 1 | ↓ | |
3 / 2 | 1.5 | 1 | ↑ | 0.5 x 2 | 1.0 | 1 | ↓ | |
1 / 2 | 0 | 1 | ↑ | |||||
13.37510 | 1101 | . | 011 |
Övning 3: Omvandla decimala bråktal till binära tal
- 27.37510
- 33.7510
- 54.12510
- 47.87510
Lösningen enlig metoden ovan frågorna:
Division | = | % | * | = | % | Division | = | % | * | = | % | |||||
27 / 2 | 13.5 | 1 | ↑ | 0.375 x 2 | 0.75 | 0 | ↓ | 33 / 2 | 16.5 | 1 | ↑ | 0.75 x 2 | 1.5 | 1 | ↓ | |
13 / 2 | 6.5 | 1 | ↑ | 0.75 x 2 | 1.5 | 1 | ↓ | 16 / 2 | 8.0 | 0 | ↑ | 0.5 x 2 | 1.0 | 1 | ↓ | |
6 / 2 | 3.0 | 0 | ↑ | 0.5 x 2 | 1.0 | 1 | ↓ | 8 / 2 | 4.0 | 0 | ↑ | |||||
3 / 2 | 1.5 | 1 | ↑ | 4 / 2 | 2.0 | 0 | ↑ | |||||||||
1 / 2 | 0 | 1 | ↑ | 2 / 2 | 1.0 | 0 | ↑ | |||||||||
27.37510 | 11011.0112 | 1 / 2 | 0 | 1 | ↑ | |||||||||||
33.7510 | 100001.112 | |||||||||||||||
54 / 2 | 27.0 | 0 | 0.125 x 2 | 0.25 | 0 | ↓ | 47 | 23.5 | 1 | ↑ | 0.875 x 2 | 1.75 | 1 | ↓ | ||
27 / 2 | 13.5 | 1 | ↑ | 0.25 x 2 | 0.5 | 0 | ↓ | 23 | 11.5 | 1 | ↑ | 0.75 x 2 | 1.5 | 1 | ↓ | |
13 / 2 | 6.5 | 1 | ↑ | 0.5 x 2 | 1.0 | 1 | ↓ | 11 | 5.5 | 1 | ↑ | 0.5 x 2 | 1.0 | 1 | ↓ | |
6 / 2 | 3.0 | 0 | ↑ | 5 | 2.5 | 1 | ↑ | |||||||||
3 / 2 | 1.5 | 1 | ↑ | 2 | 1.0 | 0 | ↑ | 0 | ||||||||
1 / 2 | 0 | 1 | ↑ | 1 | 0 | 1 | ↑ | |||||||||
54.12510 | 110110.0012 | 47.87510 | 101111.1112 |
Tabellen nedan hjälper vid konverteringar från det binära talsystem till det decimala talsystem.
28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | . | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 | 2-6 |
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | . | 1/2 | 1/4 | 1/8 | 1/16 | 1/32 | 1/64 |
. | 0.5 | 0.25 | 0.125 | 0.0625 | 0.03125 | 0.015625 |
Annars finns det andra sätt att konvertera. Till exempel talet 1012
1012 = (1 x 22) + (0 x 21) + (1 x 20) = (1 x 4) + (0 x 2) + (1 x 1)= 4 + 0 1 = 510