Hexadecimális számrendszer (hex): definíció, konverzió és számítástechnikai alkalmazás

Ismerd meg a hexadecimális számrendszer működését, konverziós módszereit és gyakorlati számítástechnikai alkalmazásait részletes példákkal és gyors tippekkel.

Szerző: Leandro Alegsa

A hexadecimális számrendszer (röviden hex) a 16-os alapú helyiértékes számrendszer. Nevét a görög/latin előtagokból kapta: a hexa (6) és a deca (10) összevonásakor kapott elnevezés jelzi a 16-os bázist. A hexadecimális számjegyek 16 féle értéket képviselnek: az 0–9 számjegyeket és az angol ábécéből vett betűket A, B, C, D, E, F, ahol A = decimális 10 és F = decimális 15. Számrendszerek között gyakran a hex a legkényelmesebb a számítástechnikában a bitek egyszerű csoportosíthatósága miatt.

Miért használjuk a hexet a számítástechnikában?

Az emberek mindennapi élete a tizedes (decimális) rendszerre épül, mert tíz ujjunk van. A számítógépek működése viszont bináris: minden bit két állapotot vehet fel (0 vagy 1). A hosszú bináris sorozatok olvashatóságának javítása érdekében a biteket csoportosítjuk. A négyes csoport (4 bit) 16 különböző állapotot tud képviselni, ezért kiválóan alkalmas egy hexadecimális számjegyre. Egy ilyen négyes bitcsoport neve a számítástechnikai szóhasználatban nibble (néha nybble vagy magyarul félbyte), két nibble pedig egy bájt (8 bit).

Szimbólumok és helyiértékek

A hexadecimális számjegyek: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Egy hex szám helyiértékei 16 hatványai: az utolsó számjegy 16^0-t, a mellette lévő 16^1-et, majd 16^2-t stb. képvisel. Például a 3A7 hex érték decimálisra átszámítva: 3·16^2 + 10·16^1 + 7·16^0 = 768 + 160 + 7 = 935.

Jelölési konvenciók

  • Gyakori előtag a 0x, például 0x63, amely egyértelművé teszi, hogy hexről van szó.
  • Egyes környezetekben az h utótagot használják (assembler stílus), például 63h. Ha a hex érték betűvel kezdődik, gyakran tesznek elé 0-t (például 0FFh), hogy elkerüljék az értelmezési gondokat.
  • HTML/CSS színek esetén a hex kód formátuma #RRGGBB (például #FF00CC), ahol minden kettős hex szám a vörös, zöld és kék komponensek 0–255 közötti értékét adja meg.
  • A hex betűk (A–F) kis- és nagybetűje nem számít: 0x3a7 = 0x3A7.

Konverziók — hogyan váltsunk

Hex → decimális: összegezzük minden számjegy értékét a megfelelő 16 hatványával. Példa: 0x3A7 = 3·16^2 + 10·16 + 7 = 935.

Decimális → hex: osztási maradék módszer: a számot 16-tal osztjuk, a maradék a legkisebb helyiértékű hexjegy, majd az osztás hányadosát ismét 16-tal osztjuk, amíg a hányados nulla nem lesz. Példa: 2748 decimális:

  • 2748 ÷ 16 = 171 maradék 12 → C
  • 171 ÷ 16 = 10 maradék 11 → B
  • 10 ÷ 16 = 0 maradék 10 → A
Eredmény felülről lefele: 0xABC.

Bináris ↔ hex: mivel 4 bit = 1 hexjegy, egyszerű a konverzió: a bináris számot jobbról négyes csoportokra tördeljük (szükség szerint balra nullát pótolunk), majd minden négyes helyet átalakítjuk egy hexjeggyé. Példa: bináris 11011011 → csoportosítva 1101 1011 → 1101 = D, 1011 = B → 0xDB (decimálisan 219).

Gyakorlati példák és alkalmazások

  • Memória- és címtartományok megadása: a programozók és rendszermérnökök memóriacímet gyakran hexben írnak, mert byteszerű határok jól láthatók (például 0x1000).
  • Színkódok a weben: #RRGGBB, például #FF00CC jelentése: R = 255, G = 0, B = 204.
  • Hibakeresés és dumpok: bináris fájlok vagy memóriatartalmak vizsgálatakor hexadecimális megjelenítés szokásos (hexdump), mert rövidebb és áttekinthetőbb, mint a tiszta bináris forma.
  • További felhasználás: gépi kódok, protokollok, szerverlogok, ellenőrzőösszegek és titkosítási előfeldolgozások gyakran használnak hex formátumot.

További megjegyzések

  • A hex értékek értelmezése függ attól, hogy előjeles (signed) vagy előjelnélküli (unsigned) értékként tekintjük-e őket. Például egy 8 bites értékként 0xFF unsignedként 255, kétkomplementes előjelesként pedig −1.
  • Az oktális (oktális) rendszert korábban gyakrabban használták bizonyos géparchitektúrákban (3 bit = 1 oktális számjegy). A hex azonban a modern architektúrákban sokkal elterjedtebb, mivel könnyen illeszkedik a 4 bites csoportokhoz.
  • Ha hex számokról olvasol régi forrásokban, találkozhatsz eltérő jelölésekkel (például 63h, 0x63, #63), ezért mindig figyeld a kontextust.

Összefoglalva: a hexadecimális rendszer praktikus, tömör és a bináris adatok emberi olvasásához jól illeszkedik. A bitek négyes csoportokra rendezése révén egy hexjegy könnyen megfeleltethető egy nibble-nek, két nibble pedig egy bájtnak, így a hex a számítástechnikai adatok leírásának alapvető eszköze.

Hexadecimális értékek

A hexadecimális számrendszer hasonlít a nyolcjegyű számrendszerhez (8-as bázis), mivel mindkettő könnyen összehasonlítható a bináris számrendszerrel. A hexadecimális számrendszer négybites bináris kódolást használ. Ez azt jelenti, hogy a hexadecimális számrendszerben minden egyes számjegy megegyezik a bináris számrendszer négy számjegyével. Az oktális hárombites bináris rendszert használ.

A tízes számrendszerben az első számjegy az egyes hely, a balra következő számjegy a tízes hely, a következő a százas hely stb. A hexadecimális rendszerben minden egyes számjegy 16 érték lehet, nem pedig 10. Ez azt jelenti, hogy a számjegyek az egyes hely, a tizenhatos hely, a következő pedig a 256-os hely. Tehát 1h = 1 tizedesjegy, 10h = 16 tizedesjegy, és 100h = 256 tizedesjegy.

A hexadecimális számok példaértékei binárisra, oktálisra és decimálisra átalakítva.

Hex

Bináris

Octal

Tizedesjegyek

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

A

1010

12

10

B

1011

13

11

C

1100

14

12

D

1101

15

13

E

1110

16

14

F

1111

17

15

10

1 0000

20

16

11

1 0001

21

17

24

10 0100

44

36

5E

101 1110

136

94

100

1 0000 0000

400

256

3E8

11 1110 1000

1750

1000

1000

1 0000 0000 0000

10000

4096

FACE

1111 1010 1100 1110

175316

64206

Átalakítás

Bináris to hexadecimális átváltás

A számok binárisról hexára történő átváltása csoportosítási módszert használ. A bináris számot jobbról kezdődően négy számjegyből álló csoportokra osztjuk. Ezeket a csoportokat ezután hexadecimális számjegyekké alakítjuk át, ahogy a fenti táblázatban látható a 0-tól F-ig terjedő hexadecimális számok esetében. A hexa számjegyek mindegyikét binárisra változtatjuk, és a csoportosítást általában eltávolítjuk.

Bináris

Csoportosítások

Hex

01100101

0110

0101

65

010010110110

0100

1011

0110

4B6

1101011101011010

1101

0111

0101

1010

D75A

Ha egy bináris számban a bitek száma nem 4 többszöröse, akkor nullákkal töltik fel, hogy azzá váljon. Példák:

  • bináris 110 = 0110, ami 6 Hex.
  • bináris 010010 = 00010010, ami 12 hexa.

Hexadecimális to Decimális

Egy szám hexadecimálisból decimálisra történő átalakítása kétféleképpen lehetséges.

Az első módszer a kézi átalakítás során gyakrabban fordul elő:

  1. Használja a decimális értéket minden egyes hexadecimális számjegyhez. A 0-9 esetében ez ugyanaz, de A = 10, B = 11, C = 12, D = 13, E = 14 és F = 15.
  2. Tartsa az alábbiakban az egyes lépéseknél átalakított számok összegét.
  3. Kezdje a legkevésbé jelentős hexadecimális számjegyekkel. Ez a jobb oldali számjegy. Ez lesz az összeg első eleme.
  4. Vegyük a második legkevésbé jelentős számjegyet. Ez a jobb oldali számjegy mellett van. Szorozzuk meg a számjegy tizedes értékét 16-tal. Ezt add hozzá az összeghez.
  5. Ugyanígy járjunk el a harmadik legkevésbé jelentős számjegy esetében is, de szorozzuk meg 162-vel (azaz 16 négyzetével, azaz 256-tal). Adjuk hozzá az összeghez.
  6. Folytassuk ezt minden egyes számjegy esetében, minden egyes helyet megszorozva egy másik 16-os hatványával. (4096, 65536 stb.)

 

Helyszín

6

5

4

3

2

1

Érték

1048576 (165)

65536 (164)

4096 (163)

256 (162)

16(161)

1 (160)


A következő módszert gyakrabban alkalmazzuk, amikor egy számot szoftverben alakítunk át. Nem kell tudnia, hány számjegyű a szám, mielőtt elkezdi, és soha nem szoroz többet 16-nál, de papíron hosszabbnak tűnik.

  1. Használja a decimális értéket minden egyes hexadecimális számjegyhez. A 0-9 esetében ez ugyanaz, de A = 10, B = 11, C = 12, D = 13, E = 14 és F = 15.
  2. Tartsa az alábbiakban az egyes lépéseknél átalakított számok összegét.
  3. Kezdje a legjelentősebb számjeggyel (a bal szélső számjegy). Ez az összeg első eleme.
  4. Ha van még egy számjegy, szorozza meg az összeget 16-tal, és adja hozzá a következő számjegy tizedes értékét.
  5. Ismételje meg a fenti lépést, amíg nincs több számjegy.


Példa: módszer: 5Fh és 3425h decimálisra, 1. módszer

 

5Fh decimálisra

Hex

Tizedesjegyek

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h to decimális

Hex

Tizedesjegyek

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

3425h

=

13349

Példa: módszer: 5Fh és 3425h decimálisra, 2. módszer

 

5Fh decimálisra

Hex

Tizedesjegyek

sum

=

5

=

(5 x 16) + 15

sum

=

80 + 15 (nem több számjegy)

5Fh

=

95

 

3425h to decimális

Hex

Tizedesjegyek

sum

=

3

=

(3 x 16) + 4 = 52

sum

=

(52 x 16) + 2 = 834

sum

=

(834 x 16) + 5 = 13349

3425h

=

13349

Kapcsolódó oldalak

Kérdések és válaszok

K: Mi a hexadecimális számrendszer?


V: A hexadecimális számrendszer egy 16 szimbólumból álló 16-os bázisú számrendszer.

K: Mi az a tíz szimbólum, amelyet a tízes számrendszerben (10-es bázis) használnak?


V: A tízes számrendszerben (10-es bázis) használt tíz szimbólum a 0,1,2,3,4,5,6,7,8 és 9.

K: Milyen hat extra szimbólumot használ a hexadecimális rendszer?


V: A hexadecimális rendszer az angol ábécéből vett betűket használja: A, B, C, D, E és F.

K: Hány bitet tartalmaz egy bájt a modern számítógépeken?


V: A modern számítógépeken egy bájt általában nyolc bitet tartalmaz.

K: Mit neveznek a mérnökök és az informatikusok négybites értékeknek?


V: A mérnökök és informatikusok a négybites értékeket nibble-nek (néha nybble-nek) nevezik.

K: Hogyan lehet elkerülni a hexadecimális számok írásakor a más számrendszerekkel való összetévesztést?


V: A hexadecimális számok írásakor a más számrendszerekkel való összetévesztés elkerülése érdekében a szám után vagy előtt "h"-t vagy "0x"-t tehetünk. Például a 63h vagy 0x63 a 63 hexadecimális számot jelenti.


Keres
AlegsaOnline.com - 2020 / 2025 - License CC3