kategória | ||||||||||
|
||||||||||
|
||
Az adatokat a számítógépes környezetben digitális, ezen belül bináris kódokkal ábrázoljuk. A bináris kód két jelet használ. Ezek a jelek a gépen természetesen valamilyen fizikai mennyiség, pl. a feszültség két, meghatározott értékeké 939d31j nt jelennek meg, például 0 V és 5 V, de a továbbiakban a 0 és az 1 jeleket fogjuk használni a kódoláshoz. Néha kellemetlen lehet, hogy a bináris kódok hosszúak. Rövidítésükre a 16-os számrendszer jeleit használhatjuk a következőképpen:
Számrendszer: 2 16 10
Kódok: 0000 0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
16 10
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
A helyértékes számrendszerek kódolási szabályai szerint egy 'B' alapú számrendszernek B db jele van amelyek egy-egy [0;B-1] intervallumba eső számot kódolnak. Ha a jelek halmaza , ahol ai) az i szám kódjele, akkor a jelhalmazból alkotott anan-1...a1a0 jelsorozat az
an* Bn+an-1*Bn-1 +... +a2*B2+a1*B1+a0*B0
szám kódja.
Ha egy 10-es számrendszerben kódolt szám 2-es számrendszerbeli alakját keressük, akkor a kódot úgy kapjuk meg, hogy a számot osztjuk maradékosan 2-vel, a maradékot leírjuk, és a kapott hányadost osztjuk tovább 2-vel addig amíg az 0 nem lesz. Ekkor a maradékok visszafelé történő összeolvasásával kapjuk a kódot.
pl.: A 123 kódja: 123 2 = 123|2
61|1
30|1
5|0
7|1
3|1
1|1
0|1
----------
Tehát a kód:11110112. A fenti algoritmus minden más, nem kettes számrendszerre való átalakításkor is hasonlóan működik.
Visszaalakítás:
Az 11110112 szám értéke a számrendszertől természetesen független, így
1*26+1*25+1*24+1*23+0*22+1*21+1*20=64+32+16+8+0+2+1=12310
A fenti átalakítási szabályok természetesen más alapú számrendszerekre is alkalmazhatók.
Egyszerűbb a számrendszerek (számkódok) közöti átalakítás, ha az alapok egymás egész hatványai. például a 2-es és a tizenhatos(hexadecimális) kódok közötti átalakítás:
111|0110|1110|1000|10112= 76E8B16.
Ilyenkor jobbról-balranégyes csoportokat képezünk a kettes alakból, ameddig lehet, majd a legbaloldalibb csoportot is kiegészítjük vezető nullákkal, ha az négynél kevesebb bitet tartalmazna. Ezután minden négyes bitcsoportot egy-egy tizenhatos jellel helyettesítve magkapjuk a hexadecimális kódot.
A visszaalakítás ugyanilyen egyszerű:
A032B16=1010|0000|0011|0010|10112.
Tehát jobbról-balra a tizenhatos kód minden egyes jelét a neki megfelelő kettes kóddal kell helyettesíteni.
Ha pedig például a kettes és a nyolcas kódrendszerek között kellene az átalakítást elvégezni, akkor a négyes bitsorozatok helyett hármasakat kellene használni, a módszer egyébként ugyanaz.
A fenti algoritmusok egész számokra működnek. Egy kissé más módszerrel lehet a nullánál kisebb helyértékes számkódok közötti konverziót elvégezni. Bizonyítás nélkül :
2*0,35= 0,70 | 0
2*0,70= 1,40 | 1
2*0,40= 0,80 | 0
2*0,80= 1,60 | 1
2*0,60= 1,20 | 1
2*0,20= 0,40 | 0
2*0,40= 0,80 | 0
így a kód kettes számrendszerben: 0,3510=0,010110...2.
Kettesről tizesre:
A kettes alakban az utolsó nény bit végtelenül ismétlődik. Az algoritmusok matematikai ismeretek birtokában könnyen bizonyíthatóan jól működnek más számrendszerek esetében is.
Találat: 1757