Podcast on Kettes és tizenhatos számrendszer
Kettes és Tizenhatos Számrendszer: Átváltás, Alapok
Podcast
Számrendszerek
Délka: 11 minut
Kapitoly
Bevezető a számok világába
A gépek nyelve: Bináris
Átváltás egyszerűen
Oktális és hexadecimális kódok
Negatív számok a gépben
A kettes komplemens lépései
Értelmezés és a tartomány
Gyakori tévedések
A kettes komplemens buktatói
A szimuláció lényege
Mit figyeljünk meg?
Összegzés és búcsú
Přepis
Hannah: Sam, elképesztő belegondolni. Épp most küldtem egy képet anyukámnak, közben zenét hallgatok, és a GPS is megy a háttérben. Az agyam felfogni sem tudja, mi minden történik ebben a kis dobozban.
Sam: És ha azt mondom, hogy a telefonod lelke mélyén az egész csak két dologból áll? Nulla… és egy. Semmi más.
Hannah: Várjunk, ezt nem hiszem el. Az összes kép, zene, üzenet… csak nullák és egyesek lennének?
Sam: Pontosan. És ez vezet el minket a mai témánkhoz, a számrendszerekhez. Ez az alapja mindennek, ami digitális.
Hannah: Üdvözlünk a Studyfi Podcast adásában. Akkor ma megfejtjük a gépek titkos nyelvét?
Sam: Megfejtjük bizony! És a végére kiderül, hogy nem is annyira titkos. Az egész a helyiértékes számrendszereken múlik.
Hannah: Oké, a „helyiérték” szót már hallottam általános iskolában. Az az, amikor egy számjegy attól ér többet, hogy hol áll a számban?
Sam: Teljesen így van! A tízes számrendszerben, amit nap mint nap használunk, tíz számjegyünk van, nullától kilencig. Ezért az az alapja, hogy 10. A 457-es számban a 7-es csak hetet ér, az 5-ös már ötvenet, a 4-es pedig négyszázat.
Hannah: Rendben, ez tiszta. De hogy jönnek ide a nullák és az egyesek?
Sam: Úgy, hogy a számítógépek nem tíz, hanem csak kettő „számjegyet” ismernek: a nullát és az egyet. Ez a kettes, vagy más néven bináris számrendszer. Képzeld el úgy, mint egy villanykapcsolót: vagy le van kapcsolva, az a nulla, vagy fel, az az egy.
Hannah: Szóval minden információt ebből a két állapotból kell összerakniuk? Az kemény lehet.
Sam: Kemény, de logikus. Vegyünk egy példát! Mondjuk az a bináris szám, hogy 1-1-0-1-0. Hogyan lesz ebből egy szám, amit mi is értünk?
Hannah: Fogalmam sincs. Segíts!
Sam: Ahogy a tízesnél a tíz hatványaival számoltunk, itt a kettő hatványaival fogunk. Jobbról kezdjük. Van 0 darab egyesünk, 1 darab kettesünk, 0 darab négyesünk, 1 darab nyolcasunk és 1 darab tizenhatosunk.
Hannah: Oké, várd, lekövetem... 16 plusz 8 plusz 2... az 26! Szóval a bináris 11010 a mi nyelvünkön 26-ot jelent?
Sam: Pontosan! Látod? Nem is ördöngösség. Ugyanaz a logika, csak más az alap.
Hannah: És visszafelé? Hogyan csinálok a 26-ból bináris számot? Ott nincs mit összeadni.
Sam: Nagyon jó kérdés! Ott egy másik trükköt használunk: az ismételt osztást. Fogjuk a 26-ot, és elkezdjük osztani kettővel, amíg a végére nem érünk.
Hannah: Oké, próbáljuk meg. 26 osztva 2-vel az 13, a maradék 0.
Sam: Szuper! Most jön a 13. Osztva 2-vel az 6, a maradék 1. A 6-ból lesz 3, a maradék 0. A 3-ból 1, a maradék 1. És az 1-ből 0, a maradék 1.
Hannah: Megvannak a maradékok: 0, 1, 0, 1, 1. Ez lenne az?
Sam: Majdnem! És ez a leggyakoribb hiba. A maradékokat fordított sorrendben kell leírni. Alulról felfelé olvasva: 1-1-0-1-0. Vissza is kaptuk az eredeti bináris számunkat.
Hannah: Á, értem! Tehát a végén kell egyet csavarni rajta. Ez egy tipikus vizsgakérdés-csapda lehet.
Sam: Ugyan, a tanárok sosem csinálnának ilyet. De igen, erre nagyon figyelj! Az utolsó maradék lesz az első számjegy.
Hannah: Hallottam már más számrendszerekről is, például a hexadecimálisról. Azok mire jók, ha a gépek a binárist beszélik?
Sam: A nyolcas (oktális) és a tizenhatos (hexadecimális) számrendszerek igazából a programozók munkáját könnyítik meg. Képzeld el, hogy egy hosszú-hosszú bináris kódsort kell olvasnod, ami csak nullákból és egyesekből áll. Hamar belezavarodnál.
Hannah: Elég valószínű.
Sam: Na, az oktális és a hexadecimális ennek a tömörítésére szolgál. Mivel a 8 az 2 a harmadikon, a 16 pedig 2 a negyediken, ezért egy oktális számjegy 3 bináris számjegyet, egy hexadecimális pedig 4-et tud helyettesíteni.
Hannah: A hexadecimálisban még betűk is vannak, nem? A, B, C... ez mindig összezavart.
Sam: Csak azért van rájuk szükség, mert a 9 után elfogytak a számjegyek. De 16-ig kell eljutnunk! Szóval az A lett a 10, a B a 11, és így tovább F-ig, ami a 15. Például a weboldalak színkódjai is hexadecimálisak.
Hannah: Vagyis amikor egy dizájnerprogramban látok egy #2AF68C kódot, az valójában egy szám?
Sam: Pontosan! Három szám, ami a piros, zöld és kék színek arányát adja meg. És ha átváltanád binárisba, minden hexadecimális jegy helyére 4 darab nulla vagy egy kerülne. Sokkal egyszerűbb annyit írni, hogy 'A', mint hogy '1010'.
Hannah: Fantasztikus! Szóval a számrendszerek nemcsak a gépeknek kellenek, hanem nekünk is, hogy egyáltalán szót értsünk velük.
Sam: Így van. És most már tudod a klasszikus programozó viccet is: A világon 10-féle ember létezik. Aki ismeri a bináris számrendszert, és aki nem.
Hannah: Oké, ezt meg kellett emésztenem egy pillanatra! De most már értem! Ez nagyon jó volt.
Hannah: Oké, eddig a pozitív számok bináris ábrázolása tiszta volt. De mi a helyzet a negatív számokkal? Hogy mondja a gép azt, hogy "mínusz öt"?
Sam: Jogos a kérdés! Nem írhat csak egy mínusz jelet elé. Erre való a kettes komplemens ábrázolás. Ez egy okos módszer, amit szinte minden modern gép használ.
Hannah: Kettes komplemens… ez valami bonyolult kódolásnak hangzik.
Sam: Dehogyis! Lássuk a mínusz öt példáját 8 biten. Először is, vesszük a pozitív ötöt: az 00000101. Eddig egyszerű, igaz?
Hannah: Igen, ez megvan.
Sam: Szuper. Most jön a trükk: fordíts meg minden bitet! A nullákból egyesek lesznek, az egyesekből nullák. Így kapjuk, hogy 11111010. Ezt hívják egyes komplemensnek.
Hannah: Oké, ez olyan, mint a bináris szám „tükörképe”.
Sam: Pontosan! Az utolsó lépés pedig, hogy ehhez hozzáadsz egyet. Tehát 11111010 plusz egy az 11111011. És kész is, ez a mínusz öt 8 biten.
Hannah: És ha egy ilyen bináris számot látok, honnan tudom, hogy negatív?
Sam: A legelső bit, a legfontosabb helyiértékű bit árulkodik. Ha az 1-es, akkor a szám negatív. De ez nem csak egy előjel, hanem a szám értékének is a része.
Hannah: Értem. Tehát a visszafejtés ugyanennek a folyamatnak a fordítottja?
Sam: Nagyjából. Kivonsz egyet, invertálod a biteket, és megkapod a pozitív eredetit. Ezzel a módszerrel 8 biten mínusz 128-tól plusz 127-ig tudunk számokat ábrázolni.
Hannah: Szóval ez a trükk teszi lehetővé, hogy a számítógép valójában a kivonást is összeadásként végezze el. De mi történik, ha ezekkel a számokkal műveleteket végzünk? Erről beszéljünk a következőkben.
Hannah: Szóval, az átváltás maga nem is olyan bonyolult, ha egyszer ráérzünk a logikájára. De gondolom, itt is van jó pár tipikus hiba, amibe a diákok rendszeresen beleesnek, igaz?
Sam: Ó, de még mennyi! Kész csapdaösvény tud lenni. A leggyakoribb talán az, amikor valaki meglátja a 10-es bináris számot, és automatikusan tíznek olvassa.
Hannah: Pedig az ugye kettőt jelent a mi tízes számrendszerünkben. Ezért is szuperfontos az a kis alsó index, a 10_2, ami jelzi a számrendszer alapját.
Sam: Pontosan. Egy másik klasszikus buktató az átváltási algoritmusnál van. Amikor tízesből kettesbe váltunk az ismételt osztással, a maradékokat mindig fordított sorrendben kell összeolvasni. Sokan ezt elfelejtik, és máris hibás az eredmény.
Hannah: Ebbe én is belefutottam már párszor. És mi a helyzet a negatív számokkal? A kettes komplemens is elég trükkösnek hangzik elsőre.
Sam: Az is tud az lenni, főleg a tévhitek miatt. A legtöbben azt hiszik, hogy a legelső bit, a legmagasabb helyiértékű, az csak egy egyszerű előjelbit. Ha 1-es, akkor negatív, és kész.
Hannah: De ez nem ilyen egyszerű, igaz? Akkor mi a csavar?
Sam: A csavar az, hogy az a bit a szám értékének is a része, nem csak egy kapcsoló. És itt jön a másik hiba: a bitméret figyelmen kívül hagyása. Egy mínusz öt teljesen máshogy néz ki 8 biten, ami 11111011, mint mondjuk 16 biten.
Hannah: Értem. Tehát a számrendszer alapja, az átváltás sorrendje és a bitméret... ezekre kell a legjobban figyelni. Na de mi a helyzet a törtekkel? Azok hogy működnek binárisan?
Hannah: Rendben, szóval az elmélet és az átváltás logikája már tiszta. De hogyan lehet ezt a legjobban begyakorolni anélkül, hogy az ember megőszülne?
Sam: Nagyon jó kérdés! És a válasz az utolsó témánk: egy interaktív szimuláció.
Hannah: Ó, ez jól hangzik! Mit kell elképzelni?
Sam: Gondolj rá úgy, mint egy sor villanykapcsolóra. Minden kapcsoló egy bit. Felkapcsolod, az értéke 1 lesz. Lekapcsolod, és 0 lesz.
Hannah: És a szimuláció azonnal megmutatja, hogy a kapcsolók állása milyen tízes számrendszerbeli értéket ad ki?
Sam: Pontosan! Ez a vizuális visszajelzés a lényeg. Látod, ahogy minden egyes kattintásod megváltoztatja a végeredményt.
Hannah: És mit érdemes figyelni közben?
Sam: Például azt, hogy ha egy bitet nulláról egyre kapcsolsz, a szám értéke pontosan annyival nő, amennyi az adott pozíció helyiértéke.
Hannah: Tehát ha a nyolcas helyiértéken lévő bitet kapcsolom be, a számom hirtelen nyolccal nagyobb lesz.
Sam: Így van. És fordítva is igaz. Ha kikapcsolod, nyolccal csökken. Figyeld meg azt is, hogy a bal oldali bitek mennyivel "erősebbek". Egy bal oldali bit átbillentése sokkal nagyobbat változtat az értéken.
Hannah: Szóval a bal oldali bitek a főnökök?
Sam: Abszolút! És ha minden bitet felkapcsolsz, akár túl is csordulhatsz, ami a programozásban egy fontos jelenség. De ez már egy haladóbb téma.
Hannah: Szuper! Ez tényleg segít, hogy az egész kézzelfoghatóvá váljon. Összefoglalva: megnéztük, miért alapvető a kettes számrendszer, hogyan működik az átváltás, és ezzel a szimulációval mindezt a gyakorlatban is kipróbálhatjuk.
Sam: Így van. A kulcs az, hogy ne féljetek kísérletezni vele! Minél többet "kapcsolgattok", annál jobban rögzül.
Hannah: Köszönjük, hogy velünk tartottatok a Studyfi Podcast mai adásában! Én Hannah voltam.
Sam: Én pedig Sam. Tanuljatok jól, és találkozunk a következő részben! Sziasztok!