A bináris számok egyik fő hátránya, hogy egy nagy decimális 10-es bázisú szám bináris karakterlánc-egyenértéke meglehetősen hosszú lehet.
A nagy digitális rendszerekkel, például számítógépekkel való munka során gyakran találkozunk 8, 16 vagy akár 32 számjegyből álló bináris számokkal, ami megnehezíti mind az olvasást, mind a hiba nélküli írást, különösen, ha sok 16 vagy 32 bites bináris számmal dolgozunk.
A probléma leküzdésének egyik gyakori módja, hogy a bináris számokat négy bites (4 bites) csoportokba vagy halmazokba rendezzük. Ezek a 4-bites csoportok egy másik, a számítógépes és digitális rendszerekben is gyakran használt számozási rendszert, a hexadecimális számokat használják.
Hexadecimális számsor
A “hexadecimális” vagy egyszerűen “Hex” számrendszer a 16-os bázist használja, és népszerű választás hosszú bináris értékek ábrázolására, mivel formátumuk meglehetősen kompakt és sokkal könnyebben érthető az 1-ekből és 0-kból álló hosszú bináris számsorokhoz képest.
A 16-os bázisú rendszer lévén, a hexadecimális számrendszer ezért 16 (tizenhat) különböző számjegyet használ, a 0-tól 15-ig terjedő számkombinációkkal. Más szóval, 16 lehetséges számjegy szimbólum létezik.
A számjegyek ilyen jelölési módjának használatával azonban van egy potenciális probléma, amelyet az a tény okoz, hogy a 10, 11, 12, 13, 14 és 15 tizedes számjegyeket általában két szomszédos szimbólummal írják. Ha például hexadecimálisan 10-et írunk, akkor a tízes decimális számot értjük-e, vagy a kettes bináris számot (1 + 0). Ennek a trükkös problémának a megkerülésére a tíz, tizenegy, . . . értékeket azonosító hexadecimális számokat használjuk. , tizenöt értéket jelölő számokat A, B, C, D, E és F nagybetűkkel helyettesítjük.
A hexadecimális számrendszerben tehát a 0-tól 9-ig terjedő számokat és az A-tól F-ig terjedő nagybetűket használjuk a bináris vagy decimális szám megfelelőjének jelölésére, kezdve a legkevésbé jelentős számjeggyel a jobb oldalon.
Amint az imént említettük, a bináris karakterláncok meglehetősen hosszúak és nehezen olvashatók, de megkönnyíthetjük az életünket, ha ezeket a nagy bináris számokat páros csoportokra osztjuk, hogy sokkal könnyebb legyen leírni és megérteni őket. Például a következő, 1101 0101 1100 11112 bináris számjegyek csoportja sokkal könnyebben olvasható és érthető, mint a 1101010101110011112, amikor az összes számjegyet összevonjuk.
A decimális számrendszer mindennapi használatában három számjegyből vagy 000-ből álló csoportokat használunk a jobb oldalról, hogy egy nagyon nagy számot, például milliót vagy billiót könnyebben megértsünk, és ugyanez igaz a digitális rendszerekben is.
A hexadecimális számok egy összetettebb rendszer, mintha csak bináris vagy decimális számokat használnánk, és elsősorban a számítógépekkel és memóriacímhelyekkel kapcsolatban használják. A bináris számot 4 bitből álló csoportokra osztva, minden egyes csoport vagy 4 számjegyből álló számjegykészlet “0000” (0) és “1111” ( 8+4+2+1 = 15 ) közötti lehetséges értéket vehet fel, így összesen 16 különböző számkombináció áll rendelkezésre 0-tól 15-ig. Ne felejtsük el, hogy a “0” is egy érvényes számjegy.
Emlékszünk a bináris számokról szóló első bemutatóból, hogy a 4 bites számjegycsoportot “nibble”-nek nevezzük, és mivel egy hexadecimális szám előállításához is 4 bitre van szükség, egy hexa számjegyet is tekinthetünk nibble-nek vagy fél-byte-nak. Ekkor két hexadecimális szám szükséges egy teljes bájt előállításához, amely 00-tól FF-ig terjed.
Amellett, mivel a 16 a decimális rendszerben a 2 negyedik hatványa ( vagy 24 ), a 2 és 16 számok között közvetlen kapcsolat áll fenn, így egy hexadecimális számjegy értéke négy bináris számjegynek felel meg, így most q egyenlő “16”-al.
Egy bináris szám négy számjegye egyetlen hexadecimális számjeggyel ábrázolható. Ez nagyon egyszerűvé teszi a bináris és hexadecimális számok közötti átváltást, és a hexadecimális számok segítségével nagy bináris számokat sokkal kevesebb számjeggyel lehet leírni.
A 0-tól 9-ig terjedő számokat továbbra is az eredeti decimális rendszerben használtuk, de a 10-től 15-ig terjedő számokat most az ábécé nagybetűivel ábrázoljuk A-tól F-ig bezárólag, és a decimális, bináris és hexadecimális számok közötti kapcsolat az alábbiakban látható.
Hexadecimális számok
Dekimális szám | 4–bit Bináris szám | Hexadecimális szám |
0 | 0000 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 111111 | F |
16 | 0001 0000 | 10 (1+0) |
17 | 0001 0001 | 11 (1+1) |
Felfelé folytatva négyes csoportokban |
A fenti eredeti bináris számot használva 1101 0101 1100 11112 ez most átkonvertálható egy egyenértékű hexadecimális számmá D5CF, ami sokkal könnyebben olvasható és érthető, mint az 1-ek és 0-k hosszú sora, ami korábban volt.
A hexadecimális jelölés használatával tehát a digitális számok kevesebb számjegyből írhatók, és sokkal kisebb a hiba előfordulásának valószínűsége. Hasonlóképpen, a hexadecimális alapú számok visszaalakítása binárisra egyszerűen a fordított művelet.
A hexadecimális számrendszer fő jellemzője tehát az, hogy 16 különböző számjegy van 0-tól F-ig, és minden egyes számjegy súlya vagy értéke 16, a legkevésbé jelentős bittől (LSB) kezdve. Annak érdekében, hogy a hexadecimális számokat megkülönböztessük a denáris számoktól, a tényleges hexadecimális számérték előtt egy “#”, (Hash) vagy egy “$” (dollárjel) előtagot használunk, #D5CF vagy $D5CF.
Mivel a hexadecimális rendszer alapja 16, ami egyben a rendszerben használt egyedi szimbólumok számát is jelenti, a 16-os indexet használjuk a hexadecimálisan kifejezett számok azonosítására. Például az előző hexadecimális számot így fejezzük ki: D5CF16
Számolás hexadecimális számokkal
Azt már tudjuk, hogyan kell 4 bináris számjegyet hexadecimális számmá alakítani. De mi lenne, ha több mint 4 bináris számjegyünk lenne, hogyan számolnánk hexadecimálisan az utolsó F betűn túl. Az egyszerű válasz az, hogy kezdjük elölről egy másik 4 bitből álló sorral az alábbiak szerint.
0…-től…9-ig, A,B,C,D,E,F, 10…-től…19-ig, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21….etc
Ne keverjük össze, a 10 vagy 20 NEM tíz vagy húsz, hanem 1 + 0 és 2 + 0 hexadecimálisan. Valójában húsz nem is létezik hexadecimálisan. Két hexadecimális számmal FF-ig tudunk számolni, ami egyenlő a decimális 255-tel. Hasonlóképpen, ha FF-nél magasabbra akarunk számolni, akkor balra hozzáadunk egy harmadik hexadecimális számjegyet, így az első 3 bites hexadecimális szám 10016, (25610) és az utolsó FFF16, (409510) lenne. A maximális 4 jegyű hexadecimális szám az FFFF16, ami decimálisan 65 535-nek felel meg, és így tovább.
Egy hexadecimális szám ábrázolása
MSB | Hexadecimális szám | LSB | ||||||
168 | 167 | 166 | 165 | 164 | 163 | 162 | 161 | 160 |
4.3G | 2.6G | 16M | 1M | 65k | 4k | 256 | 16 | 1 |
Ez a további hexadecimális számjegyek hozzáadása a decimális és bináris számok hexadecimális számmá alakításához nagyon egyszerű, ha 4, 8, 12 vagy 16 bináris számjegyet kell átalakítani. De nullákat is hozzáadhatunk a legjelentősebb bit, az MSB bal oldalára, ha a bináris bitek száma nem négy többszöröse.
A 110010110110110012 például egy tizennégy bites bináris szám, amely túl nagy ahhoz, hogy csak három hexadecimális számjegy legyen, de túl kicsi a négy hexadecimális számhoz. A megoldás az, hogy további nullákat adunk hozzá a bal szélső bithez, amíg nem kapunk egy teljes négybites bináris számot vagy annak többszörösét.
További 0-k hozzáadása a bináris számhoz
Bináris szám | 0011 | 0010 | 1101 | 1001 |
Hexadecimális szám | 3 | 2 | D | 9 |
A hexadecimális szám fő előnye, hogy nagyon kompakt, és a 16-os bázis használata azt jelenti, hogy az adott szám ábrázolásához használt számjegyek száma általában kevesebb, mint a bináris vagy decimális számban. Emellett gyors és egyszerű a hexadecimális számok és a bináris számok közötti átalakítás.
Hexadecimális számok Példa No1
A következő 1110 10102 bináris számot alakítsuk át a hexadecimális szám megfelelőjévé.
Bináris szám = 111010102 | |||
Csoportosítsuk a biteket négyesével a jobb oldalról kezdve | |||
= | 1110 | 1010 | |
Keressük meg mindegyiknek a decimális megfelelőjét. egyedi csoport | |||
= | 14 | 10 | (tizedesjegyben) |
Konvertáld át Hexadecimálisra a fenti táblázat segítségével | |||
= | E | A | (hexában) |
Ezután, a bináris szám
1110 10102 hexadecimális megfelelője #EA16 |
Hexadecimális számok Példa No2
A következő hexadecimális számot #3FA716 alakítsuk át a bináris megfelelőjére, valamint a decimális vagy denáris megfelelőjére az egyes számrendszereket azonosító indexek segítségével.
#3FA716
= 0011 1111 1010 01112
= (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1)
= 16,29510
Ezután a 16,295 decimális számot így lehet ábrázolni:-
#3FA716 hexadecimálisan
vagy
0011 1111 1010 01112 binárisan.
Hexadecimális számok összefoglalása
Ezután összefoglalva. A hexadecimális vagy Hex számrendszert a számítógépes és digitális rendszerekben általában arra használják, hogy a nagy bináris számsorokat a számunkra könnyen értelmezhető négyjegyű számsorozatokra redukálják. A “hexadecimális” szó tizenhatot jelent, mivel ez a fajta digitális számozási rendszer 16 különböző számjegyet használ 0-tól 9-ig és A-tól F-ig.
A hexadecimális számok a bináris számokat négy számjegyből álló halmazokká csoportosítják. Ahhoz, hogy egy bináris sorozatot egyenértékű hexadecimális számmá alakítsunk át, először a bináris számjegyeket 4-bites halmazba kell csoportosítanunk. Ezek a bináris halmazok 010 ( 00002 ) és 1510 ( 11112 ) között bármilyen értéket felvehetnek, ami a 0-tól F-ig a hexadecimális megfelelőjét jelenti.
A bináris logikáról szóló következő bemutatóban a bináris számok egész sorozatait fogjuk megvizsgálni egy másik digitális számrendszerbe, az oktális számokba és fordítva.