Tema - Binära tal

Tema - Binära tal
Teori ▪ Binära talsystemet
Det binära systemet som är datorernas positionssysten bygger på endast
två siffror, talen 0 och 1. Dessa siffror kallas ofta för bitar eller bits.
Låt oss se hur man skriver ett godtyckligt tal t ex 3765 som binärt tal.
Precis som positionerna i decimalsystemet är tiopotenser av 10 så är
positionerna i det binära systemet potenser av 2.
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
1
1
1
1
1 1
1
1
Beräkningen av det binära talet kan utföras genom successiva
subtraktioner: 3765 – 2048 (= den högsta potensen som ger positiv
subtraktion med 3765) = 1717; 1717 – 1024 = 693; 693 – 512 = 181;
181 – 128 = 53; 53 – 32 = 21; 21 – 16 = 5; 5 – 4 = 1; 1 – 1 = 0
tills subtraktion faller ut med noll. Alltså är 3765 = 2048 + 1024 + 512
+ 128 + 32 + 16 + 4 + +1 = 1∙211 + 1∙210 + 1∙29 + 0∙28+ 1∙127 + 0∙26 +
+1∙25 + 1∙24 + 0∙23 + 1∙122 + + 0∙21+ 1∙20 = 111010110101 i basen 2.
Låt oss se hur man skriver ett godtyckligt tal t ex 69626 som
hexadecimalt tal.
Positionerna i det hexadecimala systemet beror på potenser av 16. I
detta system behövs nya tecken, tecknen inom parentes, för talen 10
(=A), 11 (=B), 12 (=C), 13 (=D), 14 (=E) och 15 (=F).
165
164
163 162 161 160
1048576 65536 4096 256 16 1
1
0
F
F A
69626 – 65536 = 4090; 4090 – 15∙256 = 250; 250 - 15∙16 = 10 ,
10 – 10∙1 = 0.
Alltså är 69626 10 = (10FFA) 16
Binära tal - 1
Teori ▪ Hur lagras talen i en dator
Lagring av tal i datorn sker i form av binära tal. Varje binärt tal kallas ett
ord. Ordlängden av talet 110 011 är alltså sex bitar. De vanligaste
ordlängderna som datorer arbetar med är 8, 16 eller 32 bitar. De första
datorerna arbetade ofta med åtta bitars ordlängd som kom att kallas
byte.
1 byte = 8 bits
1 kilobyte (1 kB) = 210 = 1024 byte ≈ 1 tusen byte
1 megabyte (1 MB) = 220 ≈ 1 miljon byte
1 gigabyte (1GB) = 230 ≈ 1 miljard byte
Eftersom 216 = 65536, kan man med 16-bitars ordlängd lagra talen 065535 i en dator. Då man även vill kunna lagra negativa tal så ryms
talen –32768 till 32767 i ett 16 bitars ord. Talet 32767 klarar sig dock
med 15 bitar. Detta innebär att MSB, den första siffran, för talen 0, 1, 2,
3……32767 är 0. Talet 123 lagras som 0 000 000 001 111 011.
Man har bestämt att MSB (=most significant bit) skall vara 1 då talet är
negativt. Man får det negativa talet som tvåkomplementet (förklaras på
nästa sida) till motsvarande positiva tal.
Binära tal - 2
Modell ▪ Räknesätten med binära tal
Talet 5 skrivs binärt
Negera, byt ut alla ettor
mot nollor och tvärtom
Addera 1
Tvåkomplementet till 5
dvs talet -5
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0
Addera de två binära talen, i
de blå raderna till vänster.
Eftersom 1+1=10
1+1+1=11 får vi:
0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1
+ 1
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1
Utför subtraktionen 8 – 7. Vi genomför detta som additionen 8 + (-7)
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
8=
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
7=
1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
Negera talet 7
+ 1
Addera talet 1
1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1
Tvåkomplementet till 7
8 – 7 blir addition av de två 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
blå raderna ovan.
Subtraktion av 8 med 7 blir addition av de två blå raderna ovan. Eftersom vi
arbetar med 16-bitars ord så får inte additionen innehålla mer än 16 siffror. Den
17:e siffran, längst till vänster i svaret, som är en 1:a kallas spillsiffra.
Multiplikation
Vad blir 11110011 ⋅ 101?
(Vilka är de två talen?)
Utför multiplikationen
Tänk på att 1⋅0=0⋅1=0 och
att 1⋅1=1 och att 0⋅0=0
Multiplikationen ger svaret
på sista raden. (Vilket tal?)
0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1
• 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 1 1 1 1 0 0 1 1
0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1
Binära tal - 3
G1
a)
b)
Vilka tal i decimalsystemet får vi från de binära talen
00100111
10101010 (Observera att detta är ett negativt heltal! Varför?)
G2
Utföra följande beräkningar genom att först skriva om talen till
binära tal
11 + 9
b) 12 – 5
c) 123⋅11
a)
V3
a)
Facit
Ovan har vi studerat binära tal som är heltal. Vilka tal i
decimalsystemet borde svara mot:
00000010,1 2
b) 00000111,11 2
c) 000000001,001 2
G1
a)
b)
Vilka tal i decimalsystemet får vi från de binära talen
(00100111) 2 = 39
10101010) 2 = –86
V3
Ovan har vi studerat binära tal som är heltal. Vilka tal i decimalsystemet borde
svara mot:
10,1 2 = 2,5
b) 111,11 2 = 7,75
c) 1,001 2 = 1,125
a)
Binära tal - 4