Skip navigation

Átváltások

Áttekintés

Az alábbi alfejezetben a számrendszerek közötti átváltásokat fogjuk tárgyalni 2-es, 10-es és 16-os számrendszerek között.

Kettes (bináris) számrendszer: {0, 1}
Tízes (decimális) számrendszer: {0, 1, 2, ... , 9}
Tizenhatos (hexadecimális) számrendszer: {0, 1, 2, ... , 9, A, B, C, D, E, F}

10-es számrendszerbe való átváltás ( → 10 )

A számok számjegyeinek helyiértékei jobbról balra növekednek. Ez azt jelenti, hogy jobbról balra haladva egyesével a számjegyeken, az első a nulladik helyiértékő, a második az első helyiértékű, és így tovább. Amennyiben át szeretnék konvertálni egy kettes vagy tizenhatos számrendszerbeli számot tizes számrendszerbe, a számon belül az adott számjegyet kell megszorozni az adott számrendszer alapjának a szám helyiértékével vett hatványával, majd minden számjegyre elvégezve ezt a műveletet, vesszük ezen értékeknek az összegét. Azaz:

(a_{n}a_{n-1}a_{n-2}...a_1a_0)_b = \sum_{i=0}^{n} a_ib^i

Egy egyszerű példa a tizes számrendszerben:

58310 =  (5 * 102) + (8 * 101) + (3 * 100) = (5 * 100) + (8 * 10) + (3 * 1) = 500 + 80 + 3 = 583



16 → 10:

162 = 256 161 = 16 160 = 1
2. 1. 0.
5 8 3

58316 = (5 * 162) + (8 * 161) + (3 * 160=  (5 * 256) + (8 * 16) + (3 * 1) = 1280 + 128 + 3 = 141110



2 → 10:

25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
5. 4. 3. 2. 1. 0.
1 1 0 0 1 0

1100102 = (1 * 25) + (1 * 24) + (0 * 23) + (0 * 22) + (1 * 21) + (0 * 20= (1 * 32) + (1 * 16) + (0 * 8) + (0 * 4) + (1 * 2) + (0 * 1) = 32 + 16 + 0 + 0 + 2 + 0 = 5010

   

10-es számrendszerből való átváltás ( 10 → )

Ha decimális számrendszerből binárisba váltunk át, akkor a decimális számot mindig kettővel kell osztani egészen addig, amíg a hányadosként 1-et nem kapunk. Az egyes osztások után
feljegyezzük a maradékot. A decimális szám bináris számrendszerbeli alakját úgy kapjuk, hogy a maradékokat visszafelé egymás után írjuk. A visszafelé olvasást az indokolja, hogy mire 1-et kaptunk hányadosként, addig n-szer osztottunk le 2-vel, így 2n lesz az a legnagyobb 2-hatvány, amellyel a szám osztható.

A decimális számrendszerből hexadecimálisba való atváltás ugyanezt a logikát követi, csupán nem kettővel, hanem tizenhattal történik a leosztás.

10 → 2 10 → 16
58310 = ?2 58310 = ?16
/2 Maradék /16 Maradék






583 1 583 7
291 1 36 4
145 1 2 2
72 0
36 0
18 0
9 1
4 0
2 0
1 1

 58310 = 10010001112                     58310 = 24716

2-es és 16-os számrendszerek közötti átváltás (2 → 16 / 16 → 2)

A bináris számjegyeket a legkisebb helyiértékű számtól 4-essével konvertáljuk. Ha a számjegyek száma nem osztható 4-gyel, akkor legnagyobb helyértékű számjegyeket 0-val pótoljuk. Pl.:

A D 1 2
1010110100010010 = 1010 1101 0001 0010  = AD12

Értelemszerűen a másik irányba is teljesen ugyanez a módszer használható.

Törtek konvertálása (10 → 2)

A törtszámok konvertálásánál a számot egészrészre és törtrészre bontjuk fel. Vegyük itt is a decimális-bináris konverziót! Az egészrészt ugyanúgy váltjuk át, ahogy az egészszámokat az előző
algoritmussal. A törtrész átváltásánál pedig mindig meg kell szorozni az aktuális törtrészt a bináris számrendszer alapjával (2-vel), és az egészrészeket kell feljegyezni. A egészrészeket egymás után összeolvasva kapjuk a törtrész bináris változatát. Az algoritmus akkor áll meg, ha a törtrész 0 lesz.

Elképzelhető, hogy véges decimális szám törtrésze binárisan nem lesz véges.

35.13210 = ?2
/2 Maradék Egész *2






35 1 .132
17 1 0 .264
8 0 0 .528
4 0 1 .056
2 0 0 .112
1 1 0 .224
0 .448
0 .896
1 .792
1 .584
... ...

Nem biztos, hogy véges tizedes tört binárisan is véges lesz!