Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
1. Az információ 1.1. Az adat, az információ és a hír jelentése és tartalma. A kommunikáció Definíció A tárgyaknak mérhető és nem mérhető, számunkra fontos tulajdonságait adatnak nevezzük. Egy tárgynak sok tulajdonsága – adata - lehet, amelyek együttesen kizárólag az adott tárgyat azonosítják. Önmagában az adat nem közöl semmiféle ismeretet. Például, ha valamely tárgyról csupán azt az információt kapjuk, hogy kettő, az adat jelentését nem tudjuk értelmezni. Persze, ha ismernénk a kérdést, amire ezt a választ kaptuk, akkor az adat már értelmet nyerne. Definíció Az adat a tényeknek és elképzeléseknek nem értelmezett, de értelmezhető formában való közlése. Az adat tehát nem értelmezett ismeret. Ahhoz, hogy a közölt adatot vagy adatokat értelmezni tudjuk, valamiféle környezetbe kell helyezni. Definíció Az agyunkban tárolt adatokat nevezzük ismeretnek. A gondolkodás során az agyunkban tárolt adatok között összefüggéseket teremtünk, és ezen összefüggésekből kombinálva újabb adatokat állítunk elő. Az új adatokat információnak nevezzük. Definíció Információnak nevezzük az adatokon végrehajtott gondolati műveletek eredményét. Az információ értelmezett ismeret. Más megfogalmazás szerint az információ hírt hordozó jelek tartalmi jelentése, bizonytalanságot szüntet meg, új ismeret hordoz. Definíció: Az információközlés formai szabályainak összességét szintaktikai szabálynak nevezzük. A közlés tartalmi egyezményére vonatkozó szabályok összessége a szemantikai szabály. Szintaktikai szabályok például a magyar nyelv használatának szabályai, a mondatképzés, a szórend, stb. Szemantikai szabályok az egyes szavakhoz rendelt fogalmak. Adatgyűjtés közben sokszor kapunk olyan feladatokat, amely szükségtelenek az új ismeret létrehozásához. Az ember gondolkodása során nemcsak gyűjti, hanem rendszeri, kiválogatja, feldolgozza a számára fontos adatokat. Ezt az adatgyűjtés-adatfeldolgozás folyamatot információs folyamatnak nevezzük. Az információs folyamatok általában részfolyamatokból tevődnek össze. Az egyik részfolyamat eredménye lehet egy másik részfolyamatnak a kiindulási adata. A részfolyamatok között adatok átadása és átvétele folyik, ezt a folyamatot kommunikációnak nevezzük. Definíció Azt a közeget pedig, ahol az adatok áramlanak kommunikációs csatornának hívjuk. A kommunikáció két felet feltételez, amelyek közösen kialakított csatornán kommunikálnak egymással. A kommunikációs csatorna nagyon sokféle lehet: levegő, telefonvonal, rádióhullám, fény. (Bár az utóbbi kettő is a levegőben terjed.) A kommunikáció folyamata: Adó
Kommunikációs csatorna
Vevő
1.2. Az információ formája és továbbítása. Az információ kódolása Az információ megjelenési formái: beszéd, írott vagy nyomtatott anyag, hírközlés (füstjelek, rajz, dobszó, stb.), számítógépes adatbank, telekommunikációs, CD. 1
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
Az ősemberek még csak különböző hangok útján kommunikáltak egymással, majd kialakult a beszéd, a nyelvek. Az információ továbbításának módja a történelem kezdetén a beszéd volt. Az információ következő formája a jel volt. Az ókori Egyiptomban jeleket (hierogrifákat ) használtak az üzenetek továbbítására. Az ékírás, majd az írás (betűk, számok) a XX. századig az információ legfejlettebb formája lett. Külön meg kell említeni a piktogramokat, amelyek kis képek meghatározott jelentéssel. (Ilyenekkel találkozunk a pályaudvarokon, repülőtereken, stb.) A képírás, majd a betűírás kialakulásával az írott szöveg lett a fő információhordozó. A nyomtatás (Gutenberg) megjelenésével kezdődhetett el az információ tömeges átvitele, tárolása. A fejlődés következő állomása a beszéd átvitelére alkalmas eszközök feltalálása volt. A Morse-féle távírók, a telefonok, majd az elektromosság fejlődésével a rádiók voltak azok az eszközök, amelyek már képesek voltak a beszéd tömeges átvitelére is. A televízió a hang és a képi információ tömeges átvitelére is alkalmas. Ma az információt főként rádióhullámok útján továbbítják. Sokat hallani az ún. információs forradalomról, az információ értékéről. A mai modern világban az információ komoly érték lett, amely az gazdaság és politika minden területére hat. Információs hatalmak születnek (a médiumok: sajtó, rádió, televízió), amelyek nagyban befolyásolják egy ország életét. A számítógépes hálózatok, telekommunikációs rendszerek már hozzátartoznak napi életünkhöz. Meg kell ismernünk e gyorsan változó világ alapvető eszközeit ahhoz, hogy el tudjunk igazodni bennük. Ez már századunk technikája. Az információt különböző okokból (például, hogy illetéktelenek ne férjenek hozzá) kódolni szokták. A kódolás azt jelenti, hogy a bevitt adatokat valamilyen rendszer szerint átalakítják, és a továbbiakban a kódolt adatokkal dolgoznak. A kódolás legegyszerűbb változata az ún. titkosírás, amelyben például a betűk helyett az ábécében elfoglalt helyük szerinti számokat használnak. Elméletileg bármit kódolhatunk, a gyakorlatban ez attól függ, hogy mit akarunk kezdeni a kódolt információval. A mai világban legtöbbször a gyorsabb továbbítás és a titkosírás érdekében kódoljuk az információt. Definíció A kódolás valamely információ átalakítása egyezményes jelekké. A kód megállapodás szerinti jelek vagy szimbólumok rendszer, amellyel valamely információ egyértelműen meghatározható. Dekódoláson a kódolt információ visszaalakítását értjük. A digitális technikában az átalakítás feltétele olyan egyezményes előírás, amely minden jelhez (például számokhoz vagy betűkhöz) egyértelműen hozzárendel egy meghatározott bináris jelet. Az ilyen előírást kódnak, a hozzárendelés folyamatát kódolásnak nevezik. A számítógép csak kódolt formában érti meg az üzeneteinket, és az ő üzeneteit is csak dekódolva érthetjük meg.
1.4. A jel fogalma és fajtái. Az ASCII kódrendszer Definíció A jel valamely fizikai (kémiai) mennyiség értéke vagy értékváltozása. Jeleket használunk az információ továbbítására. A fizikában kétfajta jelet különböztetünk meg. Az egyik a folytonos, ún. analóg jel, a másik a diszkrét, úgynevezett digitális jel. Az analóg jel folytonos, értelmezési tartományában tetszőleges értékeket felvehet. A digitális jel értékei diszkrétek, csak meghatározott értékeket vehet fel. Az analóg és digitális jelek mellett megkülönböztetünk analóg, illetve digitális kijelzést. Az analóg kijelzésen általában a mutatós műszereke kijelzési módjait értjük (például a faliórák), míg a digitális kijelzésen a számokkal való megjelenítést (például a digitális órák). A digitális számítógépek olyan elektronikus számítógépek, amelyek csak két állapotot ismernek. A két állapotot logikai igaz, illetve logikai hamis értéknek nevezzük. A kétállapotú jellemzőt bitnek nevezzük. A bit az angol binary digit (bináris jegy) rövidítése. Definíció Egy bitnek két értéke lehet: 0 vagy 1.
2
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
A számítógépek az adatok digitálisan kódolt formáját, az ún. bitsorozatokat képesek feldolgozni. Bitsorozaton a 0-k és 1-esek meghatározott hosszúságú sorozatát értjük. Például az 11100111 alkotja a 8 bit hosszúságú bitsorozatot. Definíció Egy bájtnak nevezzük a 8 bithosszúságú bitsorozatot. A byte szó az angol By Eight (nyolcasával) szavakból származik. Itt is használhatóak a prefixumok, bár picit más a jelentésük. 1 kilobájt (1 Kbájt) = 1024 bájt. 1 megabájt (1 Mbájt) = 1024 * 1024 bájt, azaz 1048576 bájt =1024 Kbájt. 1 gigabájt (1 Gbájt) = 1024*1024*1024 bájt = 1024 Mbájt. Ahhoz, hogy a számítógép számára az információt érthetővé tegyük, kódolni kell, azaz a számítógép számára érthető bitsorozattá kell alakítani. A számítógép csak számokkal tud dolgozni, ezért a szöveges információt kódolni kell. A számítástechnikában nemzetközileg elfogadott kódrendszer az ASCII (American Standard Code for Information Interchange) és az EBCDIC (Extended Binary Code Decimal Interchange Code) kódrendszer. Az ASCII-kódrendszer az angol ábécé kis-és nagybetűit (a-tól z-ig), a számjegyeket (0-9), néhány írásjelet (!,?,+,%,*, stb.), vezérlőjeleket és speciális karaktereket tartalmaz. Definíció A betűket, számjegyeket, írásjeleket és más speciális jeleket (pl. vezérlőjeleket) összefoglaló nevükön karakternek nevezzük. Az ASCII-kódrendszerben a karakterkódok 0-tól 127-ig terjedhetnek. Az ASCII bővített változata (amit használunk) már nem csak az angol ábécé betűit tartalmazza. Például a „magyar „ ASCII-t ki kellett egészíteni az ékezetes betűkkel. Például a nagy „A” betű kódja 65, a „0”-é 48, az „á”-é 160. A 256 különböző jel az egyes nemzeti karakterkészletek eltérése miatt kevés az egységes kódrendszer kialakítására, amelyben minden nemzet sajátos karakterei ugyanazzal a kóddal szerepelhetnének. Ezt a problémát oldja meg az UNICODE karakterkészlet, amely 16 biten tárolja a jeleket, így összesen 216 különböző karakter tárolására nyílik mód. Az UNICODE-karakterkészlet első 128 karaktere megfelel az ASCII-kódnak, így azzal felülről kompatibilisnek tekinthető.
3
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2. Az informatika matematikai alapjai 2.1. Számrendszerek 2.1.1. A helyiértékes számábrázolás A számokat többféleképpen jelölték az emberek a történelem során. (Erről a következő fejezetben lesz szó.) A ma legismertebb ábrázolásmód a helyiértékes számábrázolás. Egy másféle számábrázolásra jó példa lehet az ismert római számok leírása. A helyiértékes számábrázolás esetén tudni kell az alapszámot. Az általunk használt számrendszer a 10-es, más néven decimális számrendszer, amelynek alapszáma 10. A következőkben tárgyszerűen és röviden olvasható az általunk használt számrendszerek jellemzése.
2.1.2. A bináris számrendszer A bináris számrendszert kettes számrendszernek is nevezik. A számrendszer alapszáma: 2. A számrendszer számjegyei: 0 és az 1. A számrendszer helyiérték táblázata:
…
8
4
2
1
½
1/4
…
…
23
22
21
20
2-1
2-2
…
2.1.3. Az oktális számrendszer A oktális számrendszert nyolcas számrendszernek is nevezik. A számrendszer alapszáma: 8. A számrendszer számjegyei: 0; 1; 2; 3; 4; 5; 6; 7.
A számrendszer helyiérték táblázata:
…
512
64
8
1
1/8
1/64
…
…
83
82
81
80
8-1
8-2
…
4
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.1.4. A decimális számrendszer A decimális számrendszert tízes számrendszernek is nevezik. A számrendszer alapszáma: 10. A számrendszer számjegyei: 0; 1; 2; 3; 4; 5; 6; 7; 8; 9. A számrendszer helyiérték táblázata:
…
1000
100
10
1
…
103
102
101
100
1/10 1/100
…
10-1
…
10-2
2.1.5. A hexadecimális számrendszer A hexadecimális számrendszert tizenhatos számrendszernek is nevezik. A számrendszer alapszáma: 16. A tizenhatos számrendszerben nem tudunk tizenhat különböző számot leírni, mivel csupán tíz számjegyet ismerünk. Ésszerű és egyértelmű megoldást ad, ha a 9 feletti számjegyeket betűkkel helyettesítjük: A=10; B=11; C=12; D=13; E=14; F=15.
A számrendszer számjegyei: 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; A; B; C; D; E; F. A számrendszer helyiérték táblázata: …
4096
256
16
1
1/16
1/256
…
…
163
162
161
160
16-1
16-2
…
5
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.2. Konverziók a számrendszerek között A konverzió azt jelenti, hogy az egyik számrendszerből hogyan lehet egy másik számrendszerbe átírni a kívánt számot. A konverzióhoz vagy magyarul átváltáshoz viszont tudni kell a számok egyértelmű leírását. Egy szám önmagában nem fejezi ki azt, hogy melyik számrendszerben írták le. Az 101 (egy–nulla–egy) szám értelmezhető az eddig felsorolt számrendszerek bármelyikében, hiszen a 0, és az 1 számjegyeket az összes számrendszer tartalmazza. A számrendszer alapszámát az egyértelműség miatt legtöbbször alsó indexben jelenítik meg. Amennyiben nem szerepel a számrendszer alapszáma a szám után indexként, akkor a szám alapértelmezés szerint tízes számrendszerben van. Példák:
szám
a szám olvasása
972516
kilenc–hét–kettő–öt a tizenhatos számrendszerben
1A1B016
egy–a–egy–bé–nulla a tizenhatos számrendszerben
101016
egy–nulla–egy–nulla a tizenhatos számrendszerben
37510
három–hét–öt a tízes számrendszerben vagy háromszázhetvenöt
1001
ezeregy (a tízes számrendszerben)
111002
egy–egy–egy–nulla–nulla a kettes számrendszerben
6
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.2.1. A decimális számrendszer konverziói Egy tízes számrendszerbeli egész számot a kettes számrendszerbe a következő algoritmussal konvertálhatunk (válthatunk) át: a decimális számot addig osztjuk kettővel, amíg a hányados nulla nem lesz. A maradékokat mindig feljegyezzük, majd a maradékot az utolsótól visszafelé olvasva, megkapjuk a bináris alakot. Példa: 10710 = 11010112
107 : 2
107 osztva 2-vel: 53, maradt az 1.
53 1 26 1 13 0 6 1 3 0 1 1 0 1 Egy tízes számrendszerbeli egész számot a nyolcas számrendszerbe a következő algoritmussal konvertálhatunk (válthatunk) át: a decimális számot addig osztjuk nyolccal, amíg a hányados nulla nem lesz. A maradékokat mindig feljegyezzük, majd a maradékot az utolsótól visszafelé olvasva megkapjuk az oktális alakot. Példa: 76110 = 13718
761 8 95 1 11 7 1 3 0 1 Egy tízes számrendszerbeli egész számot a tizenhatos számrendszerbe ugyanígy tudunk átváltani: a decimális számot addig osztjuk tizenhattal, amíg a hányados nulla nem lesz. A maradékokat mindig feljegyezzük, majd a maradékot az utolsótól visszafelé olvasva, megkapjuk a hexadecimális alakot. Természetesen a 9-nél nagyobb maradékokat a hexadecimális számrendszerben meghatározott jegyekre kell átírni. Példa: 44910 = 1C116
449 16 28 1 1 12 = C 0 1
7
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.2.2. A bináris számrendszer konverziói Egy bináris számot átválthatunk decimálissá, ha a számjegyeket a helyiértékükkel összeszorozzuk, majd a szorzatokat összeadjuk. Példa: 10100012 = 8110
64
32
16
8
4
2
1
1
0
1
0
0
0
1
64x1+
32x0+
16x1+
8x0+ 4x0+ 2x0+
1x1
= 81
Egy bináris számot átválthatunk hexadecimálissá, ha a számjegyeket a legkisebb helyiértékkel kezdve négyesével csoportosítjuk, majd a négy számjegyet sorba váltjuk át hexadecimálissá.
1. példa: 11 0011 1110 01112 = 33E716
11
3
0011
1110
0111
3
E
7
2. példa: 1110000111100012 = 70F116
111
7
0000
1111
0001
0
F
1
8
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.2.3. A hexadecimális számrendszer konverziói Egy hexadecimális számot átválthatunk decimálissá, ha a számjegyeket a helyiértékükkel összeszorozzuk, majd a szorzatokat összeadjuk. Példa: 2B416 = 69210
256
16
1
2
B
4
256x2+
16x11+
4x1
= 692
Egy hexadecimális számot átválthatunk binárissá, ha a számjegyeket a legkisebb helyiértékkel kezdve négy bináris számjeggyé alakítjuk.
1.példa : 2F2916 = 101111001010012
2
F
2
9
0010
1111
0010
1001
2.példa: 4A16 = 10010102 4
A
100
1010
9
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.3. Bináris számok összeadása Két bináris számot az alábbi segédtáblázat alapján adhatunk össze a legegyszerűbben:
az előző 1. számjegy 2. számjegy oszlopból átvitel
az összeg számjegye
átvitel a következő oszlopba
0
+
0
nincs
0
–
0
+
1
nincs
1
–
1
+
0
nincs
1
–
1
+
1
nincs
0
van
0
+
0
van (x)
1
–
0
+
1
van (x)
0
van
1
+
0
van (x)
0
van
1
+
1
van (x)
1
van
1. példa Nincs átvitel ebben az egyszerű példában, ezért csak a két számjegy és az összeg oszlopát kell nézni a táblázatból:
+
1
1
1
1
0
0
0
1
1
1
1
10
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2. példa Az átvitelt x-el jelölve az összeg a táblázat alapján meghatározható:
átvitel:
x
+ 1
x
x
1
1
1
1
0
1
1
0
0
3. példa A példa két olyan szám összeadását mutatja be, ahol minden lehetőség előfordul:
átvitel: 1
x
x
0
1
+ 1
1
0
x
x
x
x
x
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
11
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.4. Belső adatábrázolás A számítógép az adatokat kódolt formában tárolja, kezeli és képzi. A RAM-ban nem lehetnek rendezetlenül az adatok, a számítógépnek tudnia kell, hogy az adott adat az éppen szám, szöveg, utasítás vagy teljesen más jellegű adat. Ehhez meg kell ismerni a különféle adatok tárolási módját, vagyis a belső ábrázolást. A fejezetben a következő adatok tárolásával foglakozunk: • számok • szöveges adatok • logikai adatok
2.4.1. Számok ábrázolása A számokat alapvetően nulla és egyesek sorozatával tudjuk ábrázolni, ezért kézenfekvő a bináris számrendszer használata. A decimális számokat is lehet ábrázolni úgy, hogy a decimális számjegyeknek egy kettes számrendszerbeli kódot feleltetünk meg. A számok ábrázolását a következő csoportosításban tekintjük át: ⌦ bináris számok ábrázolása • fixpontos • lebegőpontos ⌦ decimális számok ábrázolása • pakolt • zónázott
2.4.1.1. Bináris számok ábrázolása A számok ábrázolásánál tekintetbe kell venni, hogy velük műveleteket lehessen végezni. Az áramkör tetszőleges algoritmusra elkészíthető, de nem mindegy a sorozatgyártásnál az áramkör előállítási költsége és a mérete. A pozitív bináris számok ábrázolásánál csak azt kell tudni, hogy hány biten ábrázoljuk, azután már beírható a kívánt pozíciókra. A negatív számok ábrázolása sem lenne nagy gond, ha a nullától való távolságát (abszolút érték) vennénk, majd egy bit jelezné, hogy pozitív vagy negatív a szám. Ez olykor valóban így van, azonban egyszerűbbé tehető a számolást végző áramkör, ha csak az összeadást kell elvégeznie. A kivonás miatt viszont valamilyen speciális módon kell tárolni a negatív bináris számokat, hogy az összeadás után az eredmény helyes legyen. Az alábbiakban megismerkedünk a számábrázoláshoz szükséges definíciókkal.
12
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
Mielőtt belevágnánk a közepébe, nézzük egy érdekes „játékot”. Írjunk le egy ötjegyű számot, például: 27 534 ……… ……… ……… ……… 227 532 majd alatta hagyjunk 4 üres sort, aztán leírunk egy másik számot. A játék úgy szól, hogy megkérünk valakit, hogy a megadott szám alá írjon egy tetszőleges ötjegyű számot. Aztán mi is írunk egy ilyen számot, majd ismét a megkért személy írhat egy ötjegyű számot, végül ismét mi. A leírt 1+4=5 darab szám összege az általunk előre leírt szám lesz. Hogyan csináljuk? Úgy, hogy az elsőnek leírt számhoz 200 000-2-t kell hozzáadni. Miért pont annyit? Mert nekünk csak annyi a dolgunk, hogy a megkért személy által írt számhoz olyan számot kell párban írnunk, hogy ha a két számot összeadjuk, akkor az eredmény 99 999 legyen. 2*99 999 pedig éppen 200 000-2. Figyeljük meg! 27 534 18 218 81 781 34 567 + 65 432 227 532
A két szám összege éppen 99999 A két szám összege éppen 99999
Miért volt ez a sok hűhó? Azért, mert a 18 218-nak a 9-es komplemense éppen 81 781, a 34 567 kilences komplemense pedig 65 432.
Definíció Egy p alapú számrendszer esetén egy n jegyű szám p–1-es komplemense az a szám, amely úgy áll elő, hogy az adott n jegyű szám minden számjegyét a legnagyobb értékű számjegyre kiegészítjük. 1. pé1da 37 esetén (p=10; n=2; legnagyobb értékű számjegy: 9): 62 a 9-es (p–1) komplemens, mivel 62+37=99. 2. példa 111102 esetén (p=2; n=5; legnagyobb értékű számjegy: 1): 00001 az 1-es (p–1) komplemens.
13
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
Definíció Adott egy p alapú számrendszer. A számrendszerben egy n jegyű szám p-és komplemense úgy áll elő, hogy a p– 1-es komplemenshez egyet hozzáadunk. 1. példa 37 esetén (p=10; n=2; legnagyobb értékű számjegy: 9): 62 a 9-es komplemens, 62+1=63 a 10-es komplemens. 2. példa 462 esetén (p=10; n=3; legnagyobb értékű számjegy: 9): 537 a 9-es komplemens, 537+1=538 a 10-es komplemens, 3. példa 101102 esetén (p=2; n=5; legnagyobb értékű számjegy: 1): 1001 az 1-es komplemens, (a szám első 1-ese helyett a komplemensben 0 van, ezért csak 4 jegyű a komplemens. 1001+1 = 1010 a 2-es komplemens.
14
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.4.1.2. Negatív számok ábrázolása A következőkben a számok ábrázolását segítő példák következnek. Minden esetben kiemelten fontos, hogy hány biten ábrázoljuk a bináris számokat! 1. példa Nézzük meg 4 biten a –4 ábrázolását! –5 = –1012 A –101 bináris szám egyes komplemenses alakjához a számot ki kell egészíteni 4 bitre úgy, hogy értéke egyértelmű maradjon. Az egyes komplemens előállítása ezután a bitek átbillentését jelenti, vagyis ahol 0 volt ott 1-es, ahol 1-es volt ott 0 kell szerepeljen. (Azaz a számjegyek összege 1) Az egyes komplemenses alakhoz egyet hozzáadva kapjuk a negatív bináris szám kettes komplemensét. 4 bit a –101 előjel nélküli felírása 1 0 1 az 101 alak kiegészítése 4 bitre 0 1 0 1 a –100 szám egyes komplemense (bitek ellentetjére) 1 0 1 0 a –100 szám kettes komplemense (+1 hozzáadása) 1 0 1 1 Így az eredmény: 10112 2. példa Nézzük meg 4 biten a –1 ábrázolását! –1 = –12 4 bit a –1 előjel nélküli felírása az 1 alak kiegészítése 4 bitre a –1 szám egyes komplemense (bitek ellentetjére) a –1 szám kettes komplemense (+1 hozzáadása) Így az eredmény: 11112
15
0 1 1
0 1 1
0 1 1
1 1 0 1
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
3. példa Nézzük meg 4 biten a –3 ábrázolását! –3 = –112 A –11 bináris szám egyes komplemenses alakjához a számot ki kell egészíteni 4 bitre úgy, hogy értéke egyértelmű maradjon. Az egyes komplemens előállítása ezután a bitek átbillentését jelenti, vagyis ahol 0 volt ott 1-es, ahol 1-es volt ott 0 kell szerepeljen. 4 bit a –11 előjel nélküli felírása 1 1 az 11 alak kiegészítése 4 bitre 0 0 1 1 a –11 szám egyes komplemense (bitek ellentetjére) 1 1 0 0 a –11 szám kettes komplemense (+1 hozzáadása) 1 1 0 1 Így az eredmény: 11012 4. példa Nézzük meg 4 biten a –15 ábrázolását! –15 = –11112 Mivel a szám négy bites, így nincs szükség a kiegészítésre. a –1111 előjel nélküli felírása a –1111 szám egyes komplemense (bitek ellentetjére) a –1111 szám kettes komplemense (+1 hozzáadása)
1 0 0
4 bit 1 1 0 0 0 0
1 0 1
Így az eredmény: 00012 5. példa Nézzük meg 4 biten a –19 ábrázolását! –193 = –100112 Mivel a szám négy biten nem fér el, ezért nem ábrázolható. A számítógépen minden számábrázolás csak korlátok között képzelhető el. Négy biten ábrázolható legnagyobb szám a 15.
16
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
6. példa Adott az 1010 bináris szám 4 bites, kettes komplemens alakban. Mennyi az értéke decimálisan? A negatív számokat ábrázoljuk kettes komplemenses alakban, ezért a decimális szám is biztosan negatív lesz. A visszaváltásnál is fontos, hogy 4 biten ábrázolták a számot, hiszen a visszaváltásnál is a kettes komplemensé alakítás a cél: 4 bit a negatív szám kettes komplemense 1 0 1 0 határozzuk meg a fenti szám egyes komplemensét 0 1 0 1 határozzuk meg az előző sor kettes komplemensét 0 1 1 0 váltsuk át decimális számrendszerbe 6 írjuk elé az előjelet –6 Így az eredmény: -6
2.4.1.3. Pozítív és negatív szám összege Egy tetszőleges számhoz egy negatív szám hozzáadása ugyanazt eredményezi, mintha a negatív szám abszolút értékét – az előjel elhagyásával kapott pozitív számot – vonnánk ki. Példa: 5 + (– 2) = 3, aminek ugyanaz az eredménye, mint az 5 – (+ 2) = 3 műveletnek. Ez az egyszerű szabály a számítógép számára egy kicsit mást jelent. A negatív bináris számok tárolását Neumann János ötlete alapján az ún. kettes komplemens alakkal lehet megoldani. A negatív számot kettes komplemens alakban hozzáadva egy számhoz valóban kivonást végzünk el.
17
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
Példa: Egy pozitív bináris számot adunk össze, egy kettes komplemens alakban ábrázolt negatív bináris számmal 2 bájton. Az összeg, vagyis az eredmény matematikailag értelmetlen lenne, de az ábrázolási tartomány korlátozott volta miatt a túlcsordult bittel nem foglalkozik a számítógép, hiszen nem tudja hol tárolni. Neumann ötlete azért volt nagyszerű, mert a bináris számrendszerben így elég csak az összeadás művelete, nem szükséges a kivonás, miáltal a műveleteket végző áramkörök sokkal egyszerűbbek lehetnek: ←
1. bájt 0 + 1 1 0 ↑ túlcsor dult bit
0 1 0 ←
0 1 0
0 1 0
→
A bináris szám ábrázolási tartománya
0 1 0
0. bájt 0 1 0
0 1 0
0 1 0
0 1 0
0 1 0
0 1 0
0 1 0
1 1 1
1 1 1
Az ábrázolás miatt az összeg is csak 2 bájton képződik
1 1 0
0 1 1 →
A számítógépnek ezután nem kell ismernie a kivonást, hogy ha egy pozitív számhoz hozzáadom kivonandó kettes komplemensét, akkor valójában kivontam ezt a számot a pozitív számból. Ha valaki megkérdezi a Kedves Olvasót, hogy vonja ki a 931-ből a 129-et anélkül, hogy ténylegesen elvégzi a kivonást, akkor ugye úgy oldaná meg, hogy kiszámolná a 129 kilences komplemensét, ami 870, majd hozzáadna 1-et, így kapna 871 –et, ami a 129 tízes komplemense. Ezután pedig hozzáadná a 931-hez. 931+871=1802. Az egyes elhagyjuk, azaz 802 az eredmény. Vagyis 931-129=802. ☺
18
Tehetséggondozás 2009/2010.
Neumann János Középiskola és Kollégium 1. forduló
2.4.2. A fixpontos számábrázolás Az egész számokat ábrázoljuk fixpontosan. A bináris (tört-egész elválasztó) pont fix helyen található, vagyis a helyiértékeknek állandó és határozott helyük van. Az ábrázolt szám nagysága függ attól, hogy hány biten ábrázoljuk, tehát bináris számrendszerben hány jegyű számot ábrázolunk. Az egész számok ábrázolásásra általában 2, vagy 4 bájt használatos. A bináris egész számokat mi most 2 bájton ábrázoljuk. Az ábrázolásnál figyeljünk arra, hogy a biteket jobbról balra, nullával kezdve szokás számozni. Különböző módon kell ábrázolni a pozitív és a negatív számokat. A pozitív számok és a nulla esetén az ábrázolás mindig nullával kezdődik (15. bit), s utána legfeljebb 15 bináris számjegy (14-0. bit) szerepelhet. A nulla az elején a pozitív előjel jelölésre szolgál. A negatív számokat a 16 bites 2-es komplemenses alakkal ábrázoljuk. Ez esetben megfigyelhető, hogy a kettes komplemens alak miatt az ábrázolás elején (15. bit) mindig 1-es található, vagyis az 1-el kezdődő fixpontos ábrázolás biztosan egy negatív számot takar. fix, előjel bit bináris ↓ bináris egész szám → ← pont ↓ bitek 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 • számozása:
1. bájt Az ábrázolható számok Ábrázolható számtartomány:
0. bájt
binárisan
decimálisan 2-es kompl.?
1000 0000 0000 0000 –tól – 215 -től 15
igen
0111 1111 1111 1111-ig + 2 –1-ig
nem
legnagyobb nem negatív:
0111 1111 1111 1111
+ 32 767
nem
legkisebb nem negatív:
0000 0000 0000 0000
0
nem
legnagyobb negatív:
1111 1111 1111 1111
–1
igen
legkisebb negatív:
1000 0000 0000 0000
– 32768
igen
Ennek megfelelően 2 bájton a legnagyobb ábrázolható szám a 216-1, a legkisebb a nulla, ha negatív számokat nem ábrázolunk. Egy bájton pedig az értelmezési tartomány: -27.. 27-1, ha pozitív és negatív számokat is ábrázolunk (tárolunk). Ha nem, akkor 0..28-1
19