A számrendszerek közül a kettes és a tizenhatos számrendszer bír kiemelkedő fontossággal a computerek világában. A mai számítógépek a Neumann-elveknek megfelelően bináris kódolást használnak. Ezt a legkönnyebb megvalósítani elektronikai szempontból. A hexadecimális számrendszer könnyen átalakítható kettessé és viszont, és ebben felírva a számok sokkal rövidebbek.
Ebben a számrendszerben a helyiértékek a kettes szám hatványai, a számjegyek
így 0 és 1 lehetnek.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Példaként váltsuk át a fenti bináris számot tizes számrendszerbe!
10110100‚ =0*20+0*21+1*22+0*23+1*24+1*25+0*26+1*27=180
Nem kell mást tenni, mint a helyiértéknek megfelelő 2-es hatványt összeszorozni az ott talált számmal. Egyszerűbben felírva:
10110100‚ =128+32+16+4=180
Most nézzük az átváltást tizes-ől kettes
számrendszerbe! A módszer nagyon egyszerű, a számot kettővel kell osztani, a
maradékot oldalra írni, a hányadossal tovább folytatni az osztást egészen
addig. amíg a hányados 0 nem lesz. Nézzük a példát!
|
180 |
0 | 180 osztva kettővel 90, maradék 0 | |
|
90 |
0 | 90 osztva kettővel 45, maradék 0 | |
|
45 |
1 | 45 osztva kettővel 22, maradék 1 | |
|
22 |
0 | 22 osztva kettővel 11, maradék 0 | |
|
11 |
1 | 11 osztva kettővel 5, maradék 1 | |
|
5 |
1 | 5 osztva kettővel 2, maradék 1 | |
|
2 |
0 | 2 osztva kettővel 1, maradék 0 | |
|
1 |
1 | 1 osztva kettővel 0, maradék 1 | |
|
0 |
A "kettedes" törtek ábrázolása tulajdonképpen
következik az eddigiekből. A "kettedes" vessző utáni helyiértékek 2 negatív
hatványai.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
0,0110101‚ =0*2-1+1*2-2+1*2-3+0*2-4+1*2-5+0*2-6+1*2-7=0,4140625
Egyszerűbben felírva:
0,0110101‚ =0,25+0,125+0,03125+0,0078125=0,4140625
Tizedes tört átváltásakor az egész részt a fentebb tanultak szerint kell átváltani binárisba. A törtrész különválasztva a következő szabály szerint váltjuk át: A számot szorozzuk kettővel, az egész részét írjuk ki, a törtrészével folytassuk a műveletet addig, amíg a törtrész nulla nem lesz, vagy meg nem unjuk a dolgot. (Azaz el nem értük a kellő számú "kettedes"-jegyet.) Nézzük a példát!
|
0,4140625 |
|||
|
0,828125 |
0 | 0,4140625 szorozva kettővel 0,828125, egészrésze 0 | |
|
1,65625 |
1 | 0,828125 szorozva kettővel 1,65625, egészrésze 1 | |
|
1,3125 |
1 | 0,65625 szorozva kettővel 1,3125, egészrésze 1 | |
|
0,625 |
0 | 0,3125 szorozva kettővel 0,625, egészrésze 0 | |
|
1,25 |
1 | 0,625 szorozva kettővel 1,25, egészrésze 1 | |
|
0,5 |
0 | 0,25 szorozva kettővel 0,5, egészrésze 0 | |
|
1 |
1 | 0,5 szorozva kettővel 1, egészrésze 1 | |
|
0 |
0,4140625=0,0110101‚
A kettes számrendszerben az összeadáshoz csak néhány műveleti szabályt kell ismerni, sokkal kevesebbet, mint bármely számrendszerben.
| 1 | 0 | 0 | 1 | 1 | 0‚ | ||
| 1 | 0 | 0 | 1 | 1 | 1‚ | ||
| 1 | 0 | 0 | 1 | 1 | 0 | 1‚ |
Szorzás
A többjegyű számok szorzását gyakorlatilag
ugyanúgy kell elvégezni, mint a tizes számrendszerben, azonban mivel csak 0 és 1
létezik vagy nulla az eredmény vagy az eredeti számot kell leírni. Nézzük
a példát!
|
|
|
|
|
|
|
| |||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|
|
Negatív számok ábrázolása
A számítógép előjeles számok ábrázolására az un.
kettes komplemens képzést használja.
Az előjel a legelső biten jelenik meg, ez "elveszik " a számábrázolás számára. 0
a pozitív, 1 a negatív előjel bit. Legegyszerűbb lenne, ha a pozitív
megfelelőben az előjelet kicserélve képeznénk a negatív számot. Ez a módszer
azonban nem jó. Helyette használatos a fentebb említett kettes komplemens. A
kettes komplemens működéséhez nézzük meg "ugyanezt" tizesben először. Tegyük fel
hogy csak egy számjegyet használunk.
|
|
|
||||||||
|
|
|
||||||||
|
|
|
|
Példáinkban nyolc bitet használunk, azaz az első bit az előjel és 7 bit marad a számábrázolásra. Ilyen módon a legnagyobb pozitív szám 127, a nullánál nagyobb számoknál csak annyi a feladat, hogy eléírjuk a 0 előjel bitet.
Pl.: 115=01110011‚
A negatív számok felírása kicsit bonyolultabb. Három módszert is mutatunk. Próbáljuk ki őket a -115-el.
I. módszer:(Ez nem más, mint amit a tizes számrendszerben csináltunk.)
-115=10001101‚
01110011‚
10001100‚
01110011‚
Ha látunk egy kettes komplemens számot hogyan alakíthatjuk át tizes számrendszerbe? Ha az előjel bitje nulla, tehát a szám pozitív a már ismert módszert alkalmazhatjuk a maradék hét bitre. Ha azonban az előjel bit 1, vagyis a szám negatív az átváltás nem ennyire egyszerű. Tulajdonképpen a fenti három módszer visszafelé eljátszásával próbálkozhatunk. (A harmadik módszert nem lehet megfordítani, a második és az első megfordítása tulajdonképpen ugyanaz. Ezt fogjuk ismertetni.)
Tizenhatos számrendszer
A számítógép kettes számrendszerben számol, azonban azt észrevehettük, hogy így leírni a számokat csak igen sok számjegy segítségével lehet. A rövidebb felírás kedvéért egy nagyobb alapú számrendszerre volt szükség. Láttuk azonban, hogy a kettesből tizesbe való átváltás nem túl gyors. Ezek az érvek (rövidség, gyors átváltás) a hexadecimális számrendszer mellett szólnak.
Ebben a felírásban 16 féle számjegyre lesz szükségünk.:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Az utóbbi 6 rendre A=10, B=11, C=12, D=13,
E=14, F=15. A helyiértékek pedig:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Átváltások
Tizenhatosból tizesbe hasonlóan kell, mint a kettesből tizesbe. A megfelelő helyiértéket meg kell szorozni az ott talált számjegy értékével. Példaként váltsuk át a fenti számot:
AB8FH=10*4096+11*256+8*16+15*1=40960+2816+128+15=43919
Tizesből tizenhatosba is hasonlóan fogunk
eljárni, mint a binárisban, de itt nem kettővel kell osztani, hanem tizenhattal.
Nézzük a példát!
|
43919 |
15 | 43919 osztva tizenhattal 2744, maradék 15 (F) | |
|
2744 |
8 | 2744 osztva tizenhattal 171, maradék 8 | |
|
171 |
11 | 171 osztva tizenhattal 10, maradék 11 (B) | |
|
10 |
10 | 10 osztva tizenhattal 0, maradék 10 (A) | |
|
0 |
43919=AB8FH
Ennek a résznek az elején említettek miatt
fontos lesz a kettesből tizenhatosba és visszafelé. Ez azért egyszerű, mert egy
hexadecimális számjegy pontosan négy bináris számjegynek felel meg. Átváltáskor
tehát csak arra kell vigyázni hogy akkor is négy bináris számjegyet
írjunk le ha kevesebbel is le tudnánk az adott számot. Nézzünk példát
tizenhatosból kettesbe!
|
|
|
|
|
|
|
|
|
|
AB8FH=1010101110001111‚
Kettesből tizenhatosba: Osszuk fel a kettes számrendszerbeli szám számjegyeit hátulról kezdve négyes csoportokba (az nem baj ha utoljára kevesebb marad), majd ezeket a négyes csoportokat váltsuk át tizenhatosba, végül a kapott számjegyeket írjuk egymás mellé!
1010101110001111‚ =1010 1011 1000
1111‚ =A B 8 FH