Uploaded by shamil.h

szamrendszerek GDF informatikai alapok

advertisement
INFORMATIKAI ALAPOK
SZÁMRENDSZEREK.
DIGITÁLIS SZÁMÁBRÁZOLÁS ÉS
MŰVELETEK
Dr. Vári-Kakas István
főiskolai tanár
A tízes (decimális) számrendszer
A tízes számrendszer alapszáma a 10.
Az egyes számjegypozíciókhoz a tizedesjeltől
balra a 100, 101, 102 stb. helyi értékek, míg a
tizedesjeltől jobbra a 10-1, 10-2, 10-3 stb. helyi
értékek vannak hozzárendelve 
helyértékes számrendszer:
135 = 1 x 102 + 3 x 101 + 5 x 100
123,45 = 1 x 102 + 2 x 101 + 3 x 100 + 4 x 10-1 +
+ 5 x 10-2
2/41
A kettes (bináris) számrendszer
A kettes számrendszer alapszáma a 2.
Két számjegy: „0” és „1”  helyi értékű
3/41
A tizenhatos (hexadecimális)
számrendszer
Alapszáma 16.
Hexadecimális karakterek:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Példa:
- decimális szám: 26
- bináris ábrázolása: 11010
- hexadecimális számmal: 1A
Egy hexadecimális számjegy négy bináris számjeggyel ábrázolható (16=24).
4/41
5/41
Decimális-bináris átalakítás
14
7
7
3
3
14
0
1
1110
1
0
6/41
A decimális egészrészt addig osztjuk kettővel,
amíg az osztás eredménye nulla nem lesz:
7/41
A törtrészt addig szorozzuk kettővel, amíg a
szorzás eredménye 1,0 (kereken egy) nem
lesz.
A szorzást csak a törtrésszel folytatjuk
(mindig 1-nél kisebb számot szorzunk):
8/41
Megtörténhet, hogy nem végződik nullára a
törtrész, ezért gyakran keletkezik végtelen
kettedes tört:
Kettes számrendszerben ez végtelen, szakaszos tört; tehát
elvileg végtelen sok hely kell a tárolásához.
9/41
0,63=?(2) Nyolc értékes jegyig végezzük el
az átváltást!
10/41
123,45=?(2)
11/41
Próba:
a. egészrész
1 2  1 2  1 2  1 2  0  2  1 2  1 2 
 64  32  16  8  0  2  1  123
6
5
4
3
2
1
0
b. törtrész
 
x  0,011100
 2
4 x  11100
,   2 
 
2  x  11100,1100
 2
6
2
6
 4 x  11100  2   1  27
9
60 x  27  x 
 0,45
20
12/41
Bináris-decimális átalakítás
11102 = 1 x 23 + 1 x 22 + 1 x 21 + 0 x 20 =
= 1 x 8 + 1 x 4 + 1 x 2 + 0 = 1410
13/41
Bináris-hexadecimális átalakítás
A bináris szám négyes csoportosításával:
1001101,0111(2) = 0100 1101,0111(2) = 4D,7(H)
11 1001 1111 0110 b = 39F6 h
14/41
Bináris számok összeadása
0
15/41
Bináris számok kivonása
Két szám különbségét a számítógép komplemensképzési és összeadási művelettel
állítja elő.
A komplemens: az a szám, amelyik az ábrázolható számnál 1-gyel nagyobbra egészíti
ki az adott számot.
10-es számrendszerben legyen pl. az adott
szám 273, és keressük a komplemensét:
273 = 1000 – 273 = 727
16/41
Egy szám komplemense
Kettes számrendszerben a ‒6 komplemense
(k=8 ábrázolható számjegy esetén):
2 8:
‒6:
Más megoldás:
17/41
Egyes és kettes komplemens
18/41
Kettes komplemens képzése
A számítógépben egyes komplemensből:
Gyakorlati módszer:
19/41
Előjeles számok összevonása
+8 ‒6 = +2
+8 + (‒6) = +2
(+8)
(‒6)
(+2)
20/41
Fontos összefüggések
• Bináris számjegy (binary digit – bit): 0, 1
• 8 bites egység: bájt (byte)
• Hagyományos bináris prefixumok:
210 = 1024 = 1 K (kilo)
220 = 1024 K = 1 M (mega)
230 = 1024 M = 1 G (giga)
240 = 1024 G = 1 T (terra)
n db. 0
2n = 100……………..00
n db. 1
2n ‒ 1 = 11……………..11
• n bites kombinációk száma: 2n
• Egész szám 2-vel való szorzása: a szám végére 0
21/41
Bináris prefixumok
1998 decemberében az IEC (International
Electrotechnical Commission) ajánlást tett
közzé a bináris prefixumok bevezetésre:
• Az első szótagot örökli az SI-rendszerből, és
ezt a jelölésben nagybetűvel írjuk.
• A második szótag mindig bi, amely a bináris
jellegre utal. Ezt a jelölésben kis i betű
mutatja.
Szorzófaktor
Név
Jelölés
210
220
230
240
250
260
kibi
mebi
gibi
tebi
pebi
exbi
Ki
Mi
Gi
Ti
Pi
Ei
Decimális
megfelelő
Bináris kilo: (210)1 kilo: (103)1
Bináris mega: (210)2 mega: (103)2
Bináris giga: (210)3 giga: (103)3
Bináris tera: (210)4 terra: (103)4
Bináris peta: (210)5 peta: (103)5
Bináris exa: (210)6
exa: (103)6
Eredet
22/41
Nevezetes számok
decimális (10)
bináris (2)
hexadecimális (16)
0
255
+127
‒128
65535
+32767
‒32768
0000 0000
1111 1111
0111 1111
1000 0000
1111 1111 1111 1111
0111 1111 1111 1111
1000 0000 0000 0000
00h
FFh
7Fh
80h
FFFFh
7FFFh
8000h
23/41
SZÁMÍTÓGÉPES
SZÁMÁBRÁZOLÁS
• Fixpontos
• Lebegőpontos
• Binárisan kódolt decimális (BCD)
24/41
Fixpontos számok
A szám kettes számrendszerbeli számjegyeit
tároljuk helyi értékeiknek megfelelően egy
rögzített nagyságú memóriaterületen:
• 1 bájt méretű (byte)
• 2 bájt méretű (word)
• 4 bájt méretű (double word)
• 8 bájt méretű (quad word)
25/41
Előjel nélküli számok
A kettedes pontnak rögzített a helye.
A számítógépben a fixpontos számokat egész
számként értelmezik:
8 bites a fixpontos szám: 28= 256 kombináció
 az ábrázolható számok tartománya
000000000 = 010-tól 111111112 = 255-ig terjed
26/41
16 bitből álló fixpontos szám: a legkisebb
ábrázolható érték 0, a legnagyobb pedig
216-1=65535
Két 16 bites szám összeadása:
Ha átvitel (carry) keletkezik a legmagasabb
helyiértékből  túlcsordulás
27/41
Előjeles számok
A legnagyobb helyi értékű bitet előjelbitnek
használjuk: 0 a „+”-nak, 1 a „‒”-nak felel meg:
2 bájton a legnagyobb ábrázolható szám:
Nmax = +(215‒1) = +32767
28/41
Negatív számok
A fixpontos negatív számokat kettes komplemensben
ábrázoljuk a számítógépben.
29/41
Műveletek 1.
30/41
Műveletek 2.
31/41
Lebegőpontos számok
Decimális lebegőpontos ábrázolás:
+4,74x10-3
Bináris lebegőpontos ábrázolás
±m x 2±e
m - mantissza vagy törtrész
e - exponens
32/41
Példa
A fenti példa egy nullára normalizált esetet
mutatott be: a kettedes vessző után közvetlenül
jön a legmagasabb helyi értékű 1-es.
33/41
ANSI/IEEE 754/854-es szabvány
1-re normalizált alak (1mantissza<2):
1.abc…
Az exponens növelt (pl. 8 biten 127-tel)
értékét (karakterisztika) tárolják, hogy
mindig pozitív legyen.
Kar.
Kar.
Kar.
34/41
35/41
Binárisan kódolt decimális számok
(BCD – Binary Coded Decimal)
A szám minden decimális számjegyét helyi
értékenként 4 bittel ábrázolnak:
36/41
Tömörített (pakolt – packed, csomagolt) BCD:
Mindegyik számjegy 4 biten tárolódik.
Példa: 2006 BCD kódú alakja (hexában is kiolvasva):
0010 0000 0000 0110 b = 2006h
Zónázott (pakolatlan – unpacked, csomagolatlan) BCD:
Egy-egy számjegy 8 biten tárolódik. A felső 4 bit
általában nulla (esetleg az előjelet tartalmazza).
Példa: 1992 BCD-ben (hexában is kiolvasva):
00000001 00001001 00001001 00000010 = 01090902h
37/41
Összeadás BCD kódban
3: 0011
+4: 0100
7: 0111
3: 0011
+9: 1001
?: 1100
korrekció +6: 0110
12: 1 0010
Érvénytelen kód (vagy átvitel) esetén
korrekció szükséges.
38/41
Karakterek kódolása
Az ASCII kód (American Standard Code for
Information Interchange) 7 bites kód (
27=128 karakter)  1 bájtot használ:
7 bit + 1 paritásbit
Kibővített ASCII kód  256 karakter lehetősége
 kódlapok (pl. 437-es IBM PC)
A különböző írásrendszerek kódolására
elterjedt szabvány: UNICODE  8-, 16-, 32bites formátumok
39/41
ASCII kód
A karakterkészlet:
• 26 nagybetű (A, B, C, …)
• 26 kisbetű (a, b, c, …)
• 32 írásjel és számjegyek (+, :, %, 1, 2, 3, …)
• 12 speciális jel ({, }, \, …)
• 32 vezérlőkód (LF, CR, …)
40/41
Paritásbit
Karakterek
ASCII kóddal ábrázolt karakterek páros
paritás-ellenőrzés esetén:
41/41
Ellenőrző kérdések
1. Miért van szükség a számítástechnikában 16-os számrendszerre?
2. Milyen nehézség adódhat a tárolással bizonyos tizedes törtek átváltásánál kettes
számrendszerbe, és ennek mi a következménye?
3. Adja meg két bit összeadásának táblázatát!
4. Mit nevezünk egy szám komplemensének?
5. Mi egy bináris szám egyes komplemense? Hogyan számítjuk ki a szám kettes
komplemensét?
6. Mi a bit, a bájt és melyek a többszöröseik?
7. Hogy kezeli a számítógép a fixpontos számokat?
8. Hogyan ábrázoljuk a számítógépben a fixpontos előjeles számokat?
9. Milyen egy bináris lebegőpontos szám alakja? Mi az 1-re normalizált alak?
10. Milyen hátrányai vannak a BCD-számoknak tárolásnál és összeadásnál?
11. Hány karaktert lehet kódolni a 8-bites ASCII kódban? Mire szolgál a paritásbit?
Download