A kettes és a tizenhat os számrendszer:
A köznapi életben a tízes számrendszert alkalmazzuk, a
számítástechnikában ezzel szemben a kettes és tizenhatos számrendszer a
használatos. Ha tehát prog-
ramozni szeretnénk, elengedhetetlen e számrendszerek alapos ismerete. Mielott
azonban elkezdenénk részletezni a kettes és tizenhatos számrendszert, próbáljunk a
tízes számrendszerbol kiindulva néhány általános megállapítást tenni, ami minden
számrendszerre igaz.
A tízes számrendszer alapszáma a 10-es azért, mert a számrendszer
helyi értékei- nek alapjául szolgál. Minden számrendszer helyi értékei az alapszám
0-tól egyesével növekvo hatványai. A tízes számrendszernél ez a következoképpen
néz ki:
(Hatványjel: ^ )
10 ^ 0 = 1
10 ^ 1 = 10
10 ^ 2 = 100
10 ^ 3 = 1000
10 ^ 4 = 10000
10 ^ 5 = 100000
...stb.
Ha már tisztában vagyunk a helyi értékekkel, akkor nézzük a
következo fontos allotórészt, magát a számjegyeket. A tízes számrendszer legnagyobb
számjegye a 9-es, számjegyei tehát 0-tól 9-ig terjednek. Ebbol levonhatjuk azt a
lényeges következtetést, hogy minden számrendszer számjegyei 0-tól az alapszámnál
eggyel kisebb számig terjednek. (Az alapszám a 10-es, a legnagyobb számjegy a 9-es.)
Ennek nagyon egyszeru magyarázata van. A 9-es után, ami 9 db egyes, nem 10 db egyes
jön, hanem egy db tízes. Ugyanígy a 90 után ami 9 db tízes nem tíz db tízes jön,
hanem 1 db százas. Tehát, ha egy számjegy eléri egy helyi értéken az alapszámot,
akkor ezen a helyi értéken 0 lesz, a következo, eggyel felette lévo helyi értéken
pedig eggyel több. Ha ott 0 volt, akkor 1 lesz, ha 1 volt, akkor 2 stb.
Nézzünk most egy példát, ami egy szokványos tízes számrendszerbeli szám ilyen
felbontását mutatja helyi értékekre és a helyi értékeken álló számjegyekre:
1986
1*1000 =1000
9* 100 = 900
8* 10 = 80
6* 1 = 6
+
-------
1986
------------------------------
10^3 10^2 10^1 10^0
1000 100 10
1
------------------------------
1 9
8
6
Ezután próbáljuk a meglévo ismereteink alapján felépíteni a
kettes számrendszert. Alapszáma tehát a 2. Ebbol következnek a helyi értékek. Ezek a
2-es szám 0-tól egyesével növekvo hatványai:
2^0 = 1
2^l = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
...stb.
A legnagyobb számjegy az a.lapszámnál eggyel kisebb, ami az 1-es. A
számjegyek tehát 0-tól az alapszámnál eggyel kisebb számig terjednek, ezek a 0 és
az 1. Most, hogy ismerjük a 2-es számrendszer számjegyeit és helyi értékeit,
leírhatjuk vele az elso számunkat.
Az átváltáshoz használt eljárás nem csak a kettes számrendszerbe
történo átváltásnál alkalmazható. Megértéséhez váltsuk át az 1986-ot kettes
számrendszerbe.
Az átváltandó számot eloször osszuk el kettovel, majd írjuk le az
eredményt, és a maradékot. A maradék 0, ez a kettes számrendszerbeli szám utolsó
számjegye. Az osztás eredménye 993, ezt kell ezután tovább osztani és a maradékokat
jobbról balra haladva egymás mellé írni. Az osztást akkor kell befejezni, ha az
eredmény 0.
Eredmény Maradék
1986 0 (1986:2=993,
maradék=0)
993 1 (993:2=496,
maradék=l)
496 0 (496:2=248,
maradék=0)
248 0 (248:2=124,
maradék=0)
124 0 (124:2=62,
maradék=0)
62 0
(62:2=31,
maradék=0)
31 1
(31:2=15,
maradék=l)
15 1
(15:2=7,
maradék=l)
7 1
(7:2=3,
maradék=l)
3 1
(3:2=1,
maradék=l)
1 1
(1:2=0,
maradék=l)
0 vége
A tízes számrendszerbeli 1986 a kettes számrendszerben leírva
11111000010. Végezziik el az ellenorzést is, ami a helyiértékek és az ott álló
számjegyek szorzatainak az összegzése, Kezdjük el balról jobbra:
1 db 1024-es-1 * 1024 =1024
1 db 512-es-1 * 512 = 512
1 db 256-os-1 * 256 = 256
1 db 128-as-1 * 128 = 128
1 db 64-es-1 * 64 =
64
0 db 32-es-0 * 32 =
0
0 db 16-os-0 * 16 =
0
0 db 8-as-0 * 8
= 0
0 db 4-es-0 * 4
= 0
1 db 2-es-1 * 2
= 2
0 db 1-es-0 * 1
= 0
+
-------
1986
A kettes számrendszerbeli számot az eléírt százalékjellel (%)
szoktuk megkülön böztetni (pl.%11111000010). Most már elvégeztük a tízesbol
kettesbe, az ellenorzés során pedig a kettesbol tízesbe való átalakítást is.
Javasoljuk, hogy még néhány egyéni példával folytassuk a gyakorlást. Azért
lényeges, hogy a kettes számrendszerben otthonosan mozogjunk, mert a számítógép
muködése ezen a számrendszeren alapul.
A kettes számrendszerben egy számjegy az a legkisebb egység, amit a
számítógép tárjának elemi része tárolni képes. Ezt az elemi, legkisebb egységet
nevezzük BIT- nek. Ha egy bit értéke 0, akkor kikapcsoltnak (alacsony állapot), ha 1,
akkor bekapcsoltnak (magas állapot) nevezzük. Egy 8 bites csoportot nevezünk BYTE-
nak" A számítógép processzora és tára is ezekre a 8 bites csoportokra épül,
azaz byte-szervezésu.
Egy byte-on belül a 8 bitet jobbról balra 0-tól 7-ig terjedo
sorszámokkal látjuk el. Eszerint a legkisebb helyi érteku, a 0. bit a jobb szélso,
míg a legnagyobb helyi értéku, a 7. bit a bal szélso.
Ezek után térjünk rá a tizenhatos, más néven hexadecimális
számrendszerre. Próbáljuk ugyanúgy lépésrol lépésre felépíteni, mint a kettes
számrendszert. Annyit rögtön tudunk, hogy az alapszám a 16-os, a helyi értékek pedig
a 16-osnak 0-tól egyesével növekvo hatványai:
16 ^ 0= 1
16 ^ 1= 16
16 ^ 2= 256
16 ^ 3=4096
...stb.
Ezután határozzuk meg a számjegyeket. A számjegyek 0-tól az
alapszámnál, tehát a 16-osnál eggyel kisebb számig, a 15-ösig terjednek. Itt
jelentkezik az elso furcsaság. Mi, akik a tízes számrendszerhez vagyunk szokva,
legnagyobb számjegyként a 9-est ismerjük. Itt pedig még a 15-ösig önálló
számjegyekre van szükség. Erre a hiányzó hat számjegyre vezették be az ABC elso hat
betujét A-tól F-ig.
DEC HEX BIN
1 = 1 =
0001
2 = 2 =
0010
3 = 3 =
0011
4 = 4 =
0100
5 = 5 =
0101
6 = 6 =
0110
7 = 7 =
0111
8 = 8 =
1000
9 = 9 =
1001
10 = A =
1010
11 = B =
1011
12 = C =
1100
13 = D =
1101
14 = E =
1110
15 = F =
1111
Az 1986 tehát a tizenhatos számrendszerben:
16^2 16^1 16^0
256 16
1
Végezzük el az ellenorzést (C=12)
2 db 1-es- 2 * 1
= 2
C db 16-os-12 * 16 = 192
7 db 256-os- 7 * 256 =1792
+
-------
1986
A tizenhatos számrendszer-beli számok leírásánál a szám elé
dollár ($) jelet kerll írni, ezzel jelöljük, hogy a szám hexadecimális (PL: $7C2).
Ezzel megismertük a tizenhatos számrendszert, bár néhány példával nem árt még
gyakorolni az átalakítást tízesből tizenhatosba és vissza.
Ezután térjünk rá, hogyan lehet kettesből tizenhatosba, ill
tizenhatosból kettesbe átalakítani a számokat. Maradjunk az eredeti példánknál, és
az 1986-os számot kettesből alakítsuk át tizenhatosba. Először írjuk le a kettes
számrendszerbeli számot,
11111000010
majd jobbró1 balra osszuk fel négyes csoportokra. Ha nem jön ki négy számjegyre
egészítsük ki 0-kal:
0111,1100,0010
Ha kész, mindegyik négyes csoportot váltsunk át külön-külön tízes számrend-
szerbeli számmá, majd írjuk le az így kapott számot tizenhatos számrendszerbeli
számjegyekkel:
0111, 1100,
0010
7
12
2
7
C
2
A végeredmény az 1986 tizenhatosbeli alakja, a $702. Végezzük most
el viszzafelé a műveletet, a $702-t írjuk át kettes számrendszerbeli számmá. Ehhez
szintén előszöl írjuk le a 702 számjegyeket, majd mindegyik számjegyhez rendeljünk
hozzá egy négybites csoportot. Ezekben a négyes csoportokban írjuk majd le a hozzá
tartozó tizenhatos számrendszerbeli számjegyet kettes számrendszerben. Ügyeljünk
arra, hogy minden helyiértéket kitöltsünk, írjuk le az összes 0-t is.
7
C 2
0111 1100
0010
Ha a számsor bal 0ldalár61 elhagyjuk a felesleges nullákat,
megkapjuk az eredeti kettes számrendszerben leírt 1986-os számot.
$7C2 =%11111000010 = 1986