Adattárolás a számítógépen - a kettes számrendszer

Frank Miklós informatikatanár összeállítása



Az emberek ősidők óta számlálnak, számolnak a kezük segítségével. Mivel egy embernek 10 ujja (digitusz) van, így természetes, hogy mindent tizesével csoportosítunk. Ezért az emberek a 10-es számrendszert használják, azaz 10 egyes alkot 1 tizest, 10 tizes 1 százast, 10 százas egy ezrest, és így tovább a végtelenségig.

A 10-es számrendszerben 10 számjegy van a mennyiség kifejezésére: 0 1 2 3 4 5 6 7 8 9

Amikor leírunk egy számot, akkor jobbról az első helyre írjuk az egyeseket, majd balra haladva láthatjuk a tizeseket, százasokat, ezreseket, és így tovább. Így mindig pontosan tudjuk a számok helye szerint, hogy mekkora számot írtunk le. Tehát a számjegy helye meghatározza az értékét is. Az egyes egységeket: egyesek, tizesek, százasok, ezresek... helyiértékeknek nevezzük. Így a számokat természetes módon, szinte gondolkodás nélkül ki tudjuk olvasni, és pontosan tudjuk értéküket.

Például van 13 ikszünk, valamink, bármink, és ezeket most 10-esével csoportosítjuk:

Helyiértékek
tizesek
egyesek
1
3



A fenti táblázatban látható szám a 13. Egy tizesünk és három egyesünk van. Ami azt jelenti, hogy valójában 13 egyes van, de 10 egyesből tudtunk 1 darab tizes csoportot csinálni, tehát lett 1 tizes csoportunk, és maradt még 3 egyesünk, amiből már nem lehet újabb tizes csoportot alkotni. Ez egyszerű.


Ha azonban nem tizesével csoportosítunk, hanem kettesével, vagy tizenhatosával, vagy huszonötösével, akkor egy másik, szintén helyiértékeket használó számrendszerben találjuk magunkat. A mennyiségeket kifejezve bármilyen módon csoportosíthatunk, és ahány féle a csoportosítás, annyiféle  számmal tudjuk kifejezni ugyanazt az értéket. Azaz létezik kettes, hármas, négyes, ötös, hatos, hetes, nyolcas, kilences, tizes, tizenegyes, tizenkettes... számrendszer is. Közöttük csak a csoportosításban, és így a helyiértékekben van különbség.

Az informatikában a kettes, azaz bináris számrendszert használják 1946 óta, amikor is azt Neumann János leírta, meghatározta. Ebben mindössze két számjegyre van szükség, a nullára és az egyesre. Azért jó ez az informatikában, mert ezzel a két számjeggyel egyszerűen kifejezhető egy áramkör állapota. Ha az áramkörben nem folyik áram, akkor azt a nullával, ha pedig van áram, akkor azt az egyes számjeggyel jelölhetjük. Több lehetőség nincs, és a két számjegy jól megkülönböztethető, elválasztható egymástól. Ha valamilyen adatot ezekkel a számokkal (csak 0 és 1) írunk le, akkor azt digitális, bináris jelsorozatnak nevezzük. Ezeket a jelsorozatokat használja ma minden informatikai eszköz, mert könnyen értelmezhető, feldolgozható, tárolható, továbbítható.

Tehát a kettes számrendszerben mindent kettesével csoportosítunk. A helyiértékek is eszerint alakulnak. Két egyesből lesz egy darab kettes csoport. Ha van két kettesünk, abból lesz egy négyes csoportunk. Két négyesből egy nyolcas, két nyolcasból egy tizenhatos, két tizenhatosból pedig egy 32-es csoportot tudunk csinálni... és így tovább.

Például
van 13 ikszünk, valamink, bármink, és ezeket most kettesével csoportosítjuk:



Jól látható, hogy lett 6 darab kettes csoportunk, és egy maradék egyesünk. Mivel ebben a számrendszerben mindent kettesével kell csoportosítani, így folytatnunk kell a csoportosítást, két kettesből csinálhatunk egy négyes csoportot:



Az első két darab piros kettes csoportból csináltunk egy zöld négyest, aztán a következő kettőből megint egy négyest, és végül ismét egy négyest. Lett három darab négyes csoportunk. DE a kettes számrendszerben mindent kettesével csoportosítunk tovább, ezért két négyesből kell csinálnuk egy nyolcas csoportot:



Csak 1 darab kék nyolcas coportunk van, ezért ebből már nem tudunk egy nagyobb, 16-os csoportot csinálni. Maradt egy zöld négyesünk, és ebből sem tudunk már nyolcast csinálni. Elkészíthetjük tehát a helyiértékeket leíró leltározást, ahogy a fenti 10-es számrendszernél is tettük, csak itt most mások lesznek a helyiértékek:

Helyiértékek
nyolcasok
négyesek
kettesek
egyesek
1
1
0
1

Tehát egy nyolcas csoportunk van, egy maradék négyes, kettesből nem maradt egy különálló sem, és egyesből pedig egy darab árva, különálló maradt.

Tehát akár tizesével, akár kettesével csoportosítottunk, mindig ugyanaz volt a mennyiség. Mindig 13 ikszünk volt:



Egyszer tizesével, egyszer pedig kettesével csoportosítottunk:
              


A tizes számrendszerben így írjuk le a mennyiséget számként kifejezve: 13

A kettes számrendszerben pedig így írjuk le: 1 1 0 1

Akkor tehát ez igaz lenne:       13 = 1101   ???        
Azaz tizenhárom egyenlő ezeregyszázeggyel    ???

A fenti állítás csak akkor igaz, ha jelöljük a kettes számrendszert:



Az 1 1 0 1-et nem mondhatjuk ki úgy, hogy ezeregyszázegy, mert ez a szám nem ezt jelenti.
Kimondani így kell: A 13 ugyanaz, mint az egy-egy-nulla-egy a kettes számrendszerben.




A számrendszerek között egyszerűen lehet váltani, azaz a tizesből kettesbe, és visszafelé is könnyen átválthatjuk a számokat. Nézzünk erre példákat! A 175-öt váltsuk át tizesből kettes számrendszerbe:




Tehát a 175 átváltva 10-es számrendszerből a kettesbe:







Most pedig ezt a kettes számrendszerbeli számot váltsuk vissza kettesből a 10-es számrendszerbe:

Készítsük el a helyiérték táblázatot a kettes számrendszer szerint:

Helyiértékek
256
128
64
32
16
8
4
2
1

1
0
1
0
1
1
1
1

  • Egy 265 elemből álló csoportot nem tudunk megcsinálni 175 elemből. Ide tehát nem is írunk semmit. Egy kettes számrendszerbeli szám sem kezdődhet nullával.
  • Egy 128-as csoportunk viszont már lesz. Levonjuk tehát a 175-ből a 128-at: 175 - 128 = 47 ÉS beírjuk a 128-as helyiérték alá az egyes számot, mert 1 ilyen csoportunk már van.
  • A maradék 47-ből nem tudunk csinálni 64-es csoportot, mert a 47 kisebb a 64-nél, ezért a 64-es helyiérték alá egy nullát írunk, azaz nulla 64-es csoportunk van.
  • A 47-ből már lehet viszont egy 32-es csoportot csinálni. 47-32=15. Tehát a táblázatba 1-est írunk.
  • A maradék 15-ből nem lehet 16-osat készíteni, ezért ez alá nullát írunk.
  • A 15-ből lehet viszont 1 nyolcas: 15-8=7.
  • A 7-ből lehet 1 négyes: 7-4=3.
  • A 3-ből lehet 1 kettes: 3-2=1.
  • Végül marad 1 darab egyesünk.


Kész a leltár, számolhatunk. Felírom az egyes csoportokat, és szorzom őket eggyel vagy nullával aszerint, hogy volt-e abból a csoportból, vagy sem. Aztán összeadhatók a helyi értékek szerint a részeredmények:

1 × 128
128
0 × 64
0
1 × 32
32
0 × 16
0
1 × 8
8
1 × 4
4
1 × 2
2
1 × 1
1
Összeadva:
175


Láthatod, hogy ez is nagyon egyszerű volt. Kijelenthető, hogy a 10-esből bármelyik számrendszerbe átválthatunk, és onnan vissza is.

Az informatika a kettes számrendszert használja, hogy kétféle elektromos jellel (0 és 1) bármi leírható, kifejezhető legyen, mert az áramkörben vagy van áram, vagy nincs.




Felmerül a kérdés:

Hogyan tudunk mindent ezzel két jellel (0 és 1) leírni, kifejezni az informatikában? Hogyan lehet egy betűt, egy fényképet, hangokat, videót leírni ezekkel a jelekkel?

A betűk kifejezése nagyon könnyű! Az amerikaiak az 1960-as években készítettek egy táblázatot, amiben felsoroltak 128 darab írásjelet (karaktert). Ezt később 256-ra bővítették. Minden írásjelnek adtak egy 10-es számrendszerbeli sorszámot:



A fenti ábrán az amerikai ASCII táblának egy részlete látható. A 40. sorszámú karakter a zárójel nyitó párja. A 63. sorszámon a kérdőjel látható. A 107. sorszámot a kis "k" betű kapta meg.
Vegyük most példaként a 65. sorszámú nagy "A" betűt. Ha leütöd a billentyűzeten a nagy "A" betűt, akkor annak a sorszámát, a 65-öt a billentyűzeted belsejében lévő elektromos alkatrészek átalakítják bináris jelsorozattá, azaz egy kettes számrendszerbeli számmá:



A billentyűzet már ezt a jelsorozatot küldi tovább a számítógép belsejébe:   1000001  
Ez a jelsorozat már kifejezhető elektromos jelekkel, azaz elektromos árammal.




Tegyük fel, hogy készítesz egy fényképet a mobiloddal a kedvenc kutyádról. A fénykép több millió apró, pici, szemmel nem látható, színes pixelpontokból áll. A fénykép kicsit hasonlít a puzzle kirakósokhoz:

   

Ezeket a pixeleket vajon hogyan lehet leírni csak nullákkal és egyesekkel? Ez sem olyan bonyolult valójában. A pixelek rendezetten, oszlopokban és sorokban vannak. A fenti ábrákon is látható ez. Tehát meg lehet határozni azt 10-es számrendszerbeli számokkal, hogy egy adott pixel hányadik oszlopban és sorban található, azaz a pontos helye meghatározható. Ez valójában két koordináta szám lesz. Például: 175, 257
Már csak a pixel színét kell valahogy pontosan meghatároznunk.




A számítógépek a színek előállításához az RGB (red-green-blue) színkeverést használják. Ebből a három alapszínből áll össze minden kevert szín. A keverési arányt 0-tól 255-ig terjedő számokkal fejezik ki. Egy példa látható lejjebb a Paint rajzolóprogramban használt színeverésről:



A fenti ábrán látható, hogy az alsó téglalapban látható kék kevert szín így áll össze a három alapszínből:

Red - 57 + Green - 27 + Blue - 235

Az is észrevehető, hogy ennek a kék színnek az árnyalata, telítettsége, és fényereje is leírható számokkal. Tehát minden együtt van ahhoz, hogy egy fénykép egy adott pixelpontját leírjuk 10-es számrendszerbeli számokkal. A pontnak van pontos helyzete, színe, a szín tulajdonságai. Ezek mind számokkal kifejezhetők. Nincs más dolgunk, mint ezeket a számokat sorban átalakítani kettes számrendszerbeli számokká, és már kész is egyetlen pixelpont kifejezése egy elektromos, bináris jelsorozattal. Például:

10111011100111010101011110100101010110101101011010101

DE ez csak egyetlen pixel! Egy nagy felbontású fénykép sok ezer  pixelből áll, ezért a bináris jelsorozat akár több millió jelből is állhat.


Már csak egy kérdés maradt:

Vajon ezt az elektromos jelekből álló információt pontosan tudjuk mérni???

A válasz: IGEN. Nagy bajban lennénk, ha nem lehetne. Hiszen akkor nem tudnánk megmondani, hogy például a pendrájvunkra felfér-e még az az öt darab kedvenc zenénk, ami most a számítógépünk merevlemezén van, de szeretnénk átmásolni. Az információ tehát az informatikában pontosan mérhető, kiszámítható. Már tudjuk, hogy minden információ kifejezhető nullákkal és egyesekkel, azaz egy bináris jelsorozattal. Ezért nem kell mást tenni, csak számlálni kell a jeleket, azaz ki kell fejzni számokkal a  pontos mennyiségüket. Ehhez kellenek majd mértékegységek, ahogy például a tömeget is kifejezzük: gramm, dekagramm, kilogramm, tonna.

ÍME:

Az információ legkisebb egysége a BIT. Egy bit egy darab jelet tartalmaz. Vagy egy nullát vagy egy egyest, de csak egy darab jelet!

8 bit = 1 Bájt (például: 10111001 - 8 darab jel)
1024 Bájt = 1 Kilobájt
1024 KB = 1 Megabájt
1024 MB = 1 Gigabájt
1024 GB = 1 Terabájt
1024 TB = 1 Petabájt
1024 PT = 1 Exabájt

 
Ha a kutyádról készült kép 3 MB méretű, akkor  3×1024×1024×8 = 24.000.000 bitből, azaz nullából és egyesből áll pontosan. A kutyádról készült kép bináris jelsorozata összetartozik, egy egységet alkot, ami egy hatalmas adatfolyam. A 24 millió jel egyetlen fényképpé áll össze.

A logikailag összetartozó, egy egységet alkotó bináris jelsorozatot, adatfolyamot FÁJL-nak nevezzük!!!

A számítógépen (PC, notebook, tablet, mobil) mindent fájlokban tárolunk. Amikor használjuk a gépet, akkor fájlokkal dolgozunk, tanulunk, szórakozunk. Például, ha képeket nézegetünk, akkor valójában fájlokat látunk. Ha élvezzük a zenét, akkor fájlokat hallgatunk. Ha elkészítünk egy táblázatot, dokumentumot, rajzot, weblapot, akkor valójában fájlokat hozunk létre. Ha játszunk, akkor fájlokat futtatunk. Tehát bármit csinálunk, mindig fájlokkal foglalkozunk.

File (ez az eredeti angol elnevezés) magyarul ejtsd: Fájl. Ma már elfogadott a magyar írásmód.

Fájl = állomány