Bináris, decimális és hexadecimális: hogyan válts át az egyikből a másikba

A számrendszerek közötti átváltás addig tűnik varázslatnak, amíg meg nem látod, hogy mindig ugyanarról az elvről van szó: minden számjegy értéke attól függ, hol áll. Itt megtanulod kézzel átváltani a binárist decimálissá és a decimálist binárissá, félelem nélkül olvasni a hexadecimális számokat, és a szöveget bitekre fordítani, kidolgozott számolásokkal és egy 0–15 táblázattal.

Frissítve:

Mi az a helyiértékes számrendszer

A 4095 decimális számban a 4 nem 4-et ér, hanem 4000-et, mert az ezresek helyén áll. Minden helyiérték a számjegyet 10 egy hatványával szorozza (1, 10, 100, 1000…). Ez a helyiértékes számrendszer, az alap pedig a használt különböző számjegyek száma: a decimálisban tíz.

A bináris ugyanígy működik, de 2-es alappal: csak a 0 és az 1 létezik, és minden helyiérték kétszer annyit ér, mint az előző. A hexadecimális 16-os alapot használ: a tizenhat számjegy a 0–9 és az A–F betűk, és minden helyiérték 16-szor annyit ér, mint az előző. A számítógépek binárisan dolgoznak, mert egy áramkörnek csak két állapotot kell megkülönböztetnie (ki és be), a hexadecimális pedig ezeknek a biteknek a rövid leírási módja.

Amit az egyes helyiértékek érnek. Ha fejből tudod a 2 hatványait 128-ig, szinte az összes számolást megspórolod.
Helyiérték (jobbról balra)Érték binárisbanÉrték hexadecimálisban
1.11
2.216
3.4256
4.84096
5.1665 536
6.321 048 576
7.6416 777 216
8.128268 435 456

Binárisból decimálisba, kézzel

Minden számjegy mellé odaírod a helyiértékét, és csak azokat a helyiértékeket adod össze, ahol 1-es áll. Példa az 1101-gyel: jobbról balra a helyiértékek 1, 2, 4 és 8.

  1. Írd le a számot, alá pedig az egyes pozíciók értékét: 1 1 0 1 fölött 8 4 2 1.
  2. Nézd meg, mi áll az egyes helyeken: 1-es a 8-as helyén, 1-es a 4-esén, 0 a 2-esén és 1-es az 1-esén.
  3. Hagyd figyelmen kívül azokat a helyeket, ahol 0 áll (itt a 2-esét).
  4. Add össze: 8 + 4 + 0 + 1 = 13. Tehát az 1101 binárisan 13 decimálisan.

Több számjeggyel is ugyanez a helyzet: a 11111111 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, a legnagyobb érték, amely 8 bitre elfér. A 10110110 pedig 128 + 32 + 16 + 4 + 2 = 182.

Decimálisból binárisba, ismételt osztással

A számot újra és újra elosztod 2-vel, és feljegyzed minden osztás maradékát (mindig 0 vagy 1), amíg a hányados 0 nem lesz. A maradékok alulról felfelé olvasva adják a bináris számot. Példa a 45-tel:

A maradékokat alulról felfelé olvasva 101101 jön ki. Ellenőrzésként add össze: 32 + 8 + 4 + 1 = 45.

Van egy másik módszer is, amelyet sokan jobban szeretnek: a 2 hatványait vonod ki a legnagyobbtól a legkisebbig. A 200-nál: belefér a 128 (marad 72), belefér a 64 (marad 8), a 32 és a 16 nem fér bele, de a 8 igen (marad 0). A használt helyiértékek a 128, a 64 és a 8, tehát 200 = 11001000.

Hexadecimális: tizenhat számjegy és egy táblázat kéznél

Mivel a 10–15 értékekre nincs számjegy, az A, B, C, D, E és F betűket használjuk. Egy hexadecimális számjegy pontosan négy bitnek felel meg (egy «nibble»-nek), és ezért olyan kényelmes: egy 8 bites bájt mindössze két hexadecimális számjeggyel írható le.

Hexadecimálisból decimálisba váltáshoz szorozd meg az egyes számjegyeket a helyük 16-os hatványával, és add össze. Például 3F = 3 × 16 + 15 = 63 és A3 = 10 × 16 + 3 = 163.

0-tól 15-ig a négy számrendszerben, amelyet az eszköz megjelenít.
DecimálisBináris (4 bit)OktálisHexadecimális
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Miért használjuk a hexadecimálist: bájtok, színek és címek

Egy bájt 8 bit, és 0-tól 255-ig terjed (00000000-tól 11111111-ig). A biteket kézzel leírni lassú és hibaérzékeny; hexadecimálisan ugyanaz a bájt két karakter, 00-tól FF-ig. Binárisból hexadecimálisba váltáshoz oszd a biteket négyes csoportokra jobbról, és minden csoportot cserélj a táblázatbeli számjegyére. Példa: a 11010111 az 1101 és a 0111 csoportra bomlik, ezek D és 7, tehát értéke D7. Decimálisan ez 13 × 16 + 7 = 215.

A legismertebb példa a webes színek. A #FF8800 három bájtot tartalmaz: FF a vörös (255), 88 a zöld (136) és 00 a kék (0). Ez egy élénk narancs: teljes vörös, a zöldből valamivel több mint a fele, és semennyi kék. A hexadecimális memóriacímekben, hibakódokban és hálózati azonosítókban is megjelenik.

Szövegből binárisba ASCII-val

A számítógép minden betűt számként tárol, a számot pedig bitekként. Az ASCII-táblában az A 65, ami 8 bites binárisan 01000001. A «Hi» szó két betű: a H 72 (01001000), az i 105 (01101001), így 01001000 01101001 az írásmódja. A «Szia» esetén 83, 122, 105 és 97, vagyis 01010011 01111010 01101001 01100001, hexadecimálisan 53 7A 69 61.

Az eszköz az UTF-8 kódolást használja: az alap angol betűknél minden karakter egy 8 bites bájtot foglal el, de egy á, más ékezetes betű vagy egy emodzsi több bájtot, ezért 8 bitnél többet ad. Például az á két bájt: 11000011 10100001 (C3 A1 hexadecimálisan).

Hogyan csináld mindezt az eszközzel

A «Bináris, decimális és hexa» átváltó arra jó, hogy ellenőrizd a kézi számolásaidat, vagy hogy hosszú számokat hiba nélkül oldj meg.

  1. Írd be a számot a saját számrendszerének mezőjébe: «Decimális (10-es számrendszer)», «Bináris (2-es számrendszer)», oktális vagy «Hexadecimális (16-os számrendszer)». A másik három magától kitöltődik.
  2. Ha a számjegy nem való az adott számrendszerbe (például egy 2-es binárisban), az eszköz figyelmeztet.
  3. Szöveghez írd be a «Szöveg» mezőbe, és nézd meg a «Bináris (karakterenként 8 bit)» és a bájtonkénti hexadecimális értéket. Bitsorozatot is beilleszthetsz 8-asával csoportosítva, hogy visszakapd a szöveget.
  4. Ritka számrendszerekhez használd a «Bármilyen számrendszer (2-től 36-ig)» részt: kiválasztod a kiinduló és a cél számrendszert, és beírod a számot.

A korlátok: csak nemnegatív egész számokat vált át (tizedesjegy és előjel nélkül), és nem tesz hozzá vezető nullákat, így ha fix 8 bitet szeretnél, kézzel kell kiegészítened (a 13 00001101). Amit beírsz, az nem hagyja el a böngésződet.

Gyakori hibák

Kidolgozott gyakorlófeladatok

Próbáld megoldani mindegyiket, mielőtt megnézed a választ, majd ellenőrizd az eszközzel.

Gyakran ismételt kérdések

Hogyan váltom át az 1101-et binárisból decimálisba?

Összeadod azoknak a helyiértékeknek az értékét, ahol 1-es áll: 8 + 4 + 1 = 13. A jobbról második számjegy 0, ezért a 2-t nem kell hozzáadni.

Mennyi a 255 binárisan és hexadecimálisan?

A 255 binárisan 11111111, hexadecimálisan FF. Ez a legnagyobb érték, amely egy 8 bites bájtba belefér.

Miért használ betűket a hexadecimális?

Mert tizenhat különböző jelre van szüksége, a decimális rendszer pedig csak tizet ad (0–9). Ezért az A értéke 10, a B 11, a C 12, a D 13, az E 14, az F pedig 15.

Hány különböző szám írható le 8 bittel?

256, 0-tól 255-ig. Általában n bittel 2 az n-edik hatványon érték ábrázolható.

Átváltja az eszköz a negatív vagy tizedestörtes számokat?

Nem, csak nemnegatív egész számokat. Szövegnél UTF-8-at használ, ezért az ékezetes betűk és az emodzsik 8 bitnél többet adnak.