Fő tartalom
A számítógép és az Internet
Tantárgy/kurzus: A számítógép és az Internet > 1. témakör
3. lecke: Hexadecimális számokHexadecimális számok
A számítógépek számára a bináris számok kiválóan alkalmasak a számok ábrázolására. Az emberek számára azonban nem olyan nagyszerűek – nagyon hosszúak, és sokáig tart megszámolni az összes 1-est és 0-t. Amikor az informatikusok számokkal foglalkoznak, gyakran használják a decimális vagy a hexadecimális számrendszert. Igen, még egy számrendszer!
Szerencsére a számrendszerek jobban hasonlítanak egymásra, mint amennyire különböznek, és most, hogy már ismered a decimális és a bináris számrendszert, a hexadecimális számrendszer remélhetőleg érthető lesz.
A decimális számrendszerben minden számjegy 10 egy-egy hatványát jelenti – az egyesek helye, a tízesek helye stb. A 10-et a decimális vagyis tízes számrendszer alapjának nevezzük.
A hexadecimális rendszerben minden egyes számjegy 16 hatványát jelenti.
Így számolunk 10-ig hexadecimálisban: 1, 2, 3, 4, 5, 6, 7, 8, 9, start text, A, end text.
Ez elég ismerős az utolsó „számig”, az start text, A, end text-ig. A hexadecimális rendszerben ugyanis minden egyes számjegynek a 0-15 értékeket kell megadnia, de a 10-15 decimális számok nem férnek el egyetlen számjegyben. Ennek kiküszöbölésére a hexadecimális rendszer az start text, A, end text-start text, F, end text betűket használja a 10-15-ig terjedő számok jelölésére.
Számoljunk el 10-től 15-ig: start text, A, end text, start text, B, end text, start text, C, end text, start text, D, end text, start text, E, end text, start text, F, end text. Furcsa, de így helyes!
Jó néhány különböző javaslat született az évek során a 10-15-ös értékek jelölésére, de az start text, A, end text-start text, F, end text maradt a nyerő.
Számoljunk most nagyobb számokkal! Íme a 24 decimális szám, amelyet hexadecimálisan 18-ként ábrázolunk:
1 | 8 |
---|---|
16 | 1 |
16, start superscript, 1, end superscript | 16, start superscript, 0, end superscript |
Ehhez a számhoz két számjegyre van szükség, ahol a jobb oldali számjegy az egyesek helyét (16, start superscript, 0, end superscript), a bal oldali számjegy pedig a tizenhatosok helyét (16, start superscript, 1, end superscript) jelöli. Ugyanúgy, ahogyan a decimális és bináris számokat összeadtuk, összeadhatjuk az left parenthesis, 1, dot, 16, right parenthesis, plus, left parenthesis, 8, dot, 1, right parenthesis-et, és láthatjuk, hogy a hexadecimális 18 egyenlő a decimális 24 értékkel.
Számoljunk olyan számmal, amelyben betű van! Nézzük a 27 decimális számot, melyet hexadecimálisan 1, start text, B, end text-ként ábrázolunk:
1 | start text, B, end text |
---|---|
16 | 1 |
16, start superscript, 1, end superscript | 16, start superscript, 0, end superscript |
Ahhoz, hogy ezt megértsük, először is emlékeznünk kell arra, hogy a start text, B, end text a 11 értéket képviseli. Én ezt úgy csinálom, hogy az ujjaimon számolom a betűket, de számolhatsz, ahogy akarsz, csak ne feledd, hogy a 10-es értéket jelentő start text, A, end text-val kezdd.
Ezután összeadhatjuk, mint korábban, és láthatjuk, hogy left parenthesis, 1, dot, 16, right parenthesis, plus, left parenthesis, 1, dot, 11, right parenthesis egyenlő a 27 decimális értékkel.
Miért 16-os alapú?
Ezen a ponton talán elgondolkodtál azon, hogy mi az, amit az informatikusok annyira szeretnek a hexadecimális rendszerben. Miért használunk olyan rendszert, ahol a számok ábrázolásához betűk kellenek? Egy kis kitérő a történelembe elárulja, hogy miért...
A korai számítógépek 4-bites architektúrát használtak, ami azt jelentette, hogy a biteket mindig 4-es csoportokban dolgozták fel. Ezért írjuk még mindig 4-es csoportokban a biteket, például amikor 0111-et írunk a decimális 7 ábrázolására, pedig írhatnánk 111-et is.
Hány értéket képviselhet 4 bit? A legkisebb érték 0 (minden 0, 0000) és a legnagyobb érték 15 (minden 1, 1111), tehát 4 bit 16 egyedi értéket képviselhet. Aha, innen jön a 16-os szám!
A bináris rendszer minden 4 bitből álló csoportja egyetlen számjegyet jelent a hexadecimális rendszerben. Ez nagyon megkönnyíti a bináris számok hexadecimális számokká történő átalakítását, és a számítógépek számára is jól kezelhető.
Átváltás binárisból hexadecimálisba
Bizonyítsuk be binárisról hexadecimálisra való átváltással, hogy a bináris és a hexadecimális számok mennyire jól kijönnek egymással!
Kezdjük egy rövid bináris számmal:
Ez 4 bit hosszú, ami azt jelenti, hogy egyetlen hexadecimális számjegyre alakítható át. A kettes számjegy kivételével minden helyen 0 van, így ez a szám a 2 decimális számnak felel meg. A decimális és a hexadecimális rendszer a 0-9 számokat ugyanúgy ábrázolja, így a 0010 egyszerűen 2 hexadecimálisan.
Folytassuk egy kicsit hosszabb bináris számmal:
Az egyik megközelítés az lenne, hogy kiszámoljuk, melyik decimális számot jelenti ez a hosszú 1-es és 0-s karakterlánc, majd ezt átkonvertáljuk hexadecimálisra. Ez a megközelítés működne, de nagyon sok munkának tűnik egy ilyen hosszú számhoz.
Az egyszerűbb megközelítés az, ha a 4 bitből álló csoportokat egyenként átalakítjuk.
Kezdjük a bal szélső, 1001 csoporttal, amely left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 1, right parenthesis, azaz a 9 decimális számmal egyenlő. Ez a szám kisebb, mint 10, így 1001 egyszerűen 9 hexadecimális számként.
A következő csoport az 1010, vagy left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 2, right parenthesis, a decimális értéke 10. Ezt a számot hexadecimálisan egy betűvel, start text, A, end text-val ábrázoljuk.
A következő csoport a 0110, vagy left parenthesis, 1, dot, 4, right parenthesis, plus, left parenthesis, 1, dot, 2, right parenthesis, decimális értéke 6. Ez a szám hexadecimálisan ugyanez, 6.
A végső csoport 1100, vagy left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 1, dot, 4, right parenthesis, decimális értéke 12. Ezt a számot hexadecimálisan egy betűvel, start text, C, end text-vel ábrázoljuk.
A hexadecimális végeredmény 9, start text, A, end text, 6, start text, C, end text. Ezt az átalakítást anélkül végeztük el, hogy valaha is rájöttünk volna, milyen decimális számot ábrázol. Most elárulom, hogy mind az 1001101001101100, mind a 9, start text, A, end text, 6, start text, C, end text egyenlő a 39532 decimális számmal. Ez jó nagy szám, örülök, hogy számjegyenként alakítottuk át.
Mintázatok hexadecimális számokban
Ismerj meg néhány szabályszerűséget a hexadecimális rendszerrel kapcsolatban!
Először is: egy adott számjegyszám esetén melyik az a legnagyobb szám, amelyet ezzel a hosszúsággal ki lehet fejezni? A decimális számrendszerben az, amelyiknek az összes számjegye 9, például 9999. A bináris rendszerben az, ahol az összes számjegy 1, például 1111.
A hexadecimális számrendszerben az, amikor minden számjegy helyén start text, F, end text áll, start text, F, F, F, F, end text. Amikor egy ilyen számot látunk, tudjuk, hogy az adott számjegyhossz lehető legmagasabb értékét jelenti. Bármilyen magasabb szám ábrázolásához több számjegyre lenne szükségünk.
Oké, de mekkora egy ilyen nagy szám? Ugyanazt a szabályt használhatjuk, amit a bináris számoknál is: a legnagyobb szám, amelyet n számjeggyel lehet ábrázolni, megegyezik 16, start superscript, n, end superscript, minus, 1-gyel. Most, hogy a 2-es alap helyett a 16-os alappal van dolgunk, lehet, hogy elő kell vennünk egy számológépet, hogy erre rájöjjünk.
Íme egy táblázat az első négy legnagyobb értékről:
Számjegyek | Legnagyobb hexadecimális szám | Decimális megfelelő |
---|---|---|
1 | start text, F, end text | 15, left parenthesis, 16, start superscript, 1, end superscript, minus, 1, right parenthesis |
2 | start text, F, F, end text | 255, left parenthesis, 16, squared, minus, 1, right parenthesis |
3 | start text, F, F, F, end text | 4095, left parenthesis, 16, cubed, minus, 1, right parenthesis |
4 | start text, F, F, F, F, end text | 65535, left parenthesis, 16, start superscript, 4, end superscript, minus, 1, right parenthesis |
A hexadecimális számok használata
Ebben a számítógépek működéséről szóló anyagrészben főként bináris számokkal fogunk foglalkozni. Fontos azonban, hogy a hexadecimális rendszert is megértsük, mert a későbbi témakörök során és általában a programozók életében is felbukkan majd.
Egy példa a saját életemből: a webfejlesztők hexadecimális számokat használnak a színek ábrázolására. A színeket három összetevő kombinációjaként írjuk le: piros, zöld és kék. Ezen összetevők mindegyike 0 és 255 között változhat. Egy olyan szín, mint a kék, írható
rgb(0, 0, 255)
-ként vagy a tömörebb hexadecimális változatban, #0000FF
. Ezzel a jelöléssel 16, start superscript, 6, end superscript egyedi színt írhatunk le – több mint 16 millió színt!Most, hogy már tudsz a hexadecimális számokról, tartsd nyitva a szemed. Gyakran látod majd őket
0x
kezdettel, például 0x4F
, vagy egyszerűen csak felismerheted őket a 0-9
és az A-F
számok jellegzetes keverékeként. Ha érdekes felhasználási módokra bukkannál, oszd meg őket a „Jó tanácsok és köszönet” résznél.🙋🏽🙋🏻♀️🙋🏿♂️Kérdéseid vannak a témával kapcsolatban? Szívesen válaszolunk – tedd fel őket bátran alább!
Szeretnél részt venni a beszélgetésben?
Még nincs hozzászólás.