Számrendszer A számábrázolási rendszer röviden: számrendszer meghatározza, hogyan ábrázolható egy adott szám. A számjegy egy szimbólum (vagy azok csoportja), ami egy számot ír le. A számjegyek éppen úgy különböznek az általuk leírt számtól, mint egy szó attól a dologtól, amit valójában jelent. A "11" jelek a "tizenegy" és a "XI" különbözőek, de ugyanazt a számot írják le. Egy számrendszer (vagy számábrázolási rendszer) egységes szabályok alapján meghatározza, hogy számjegyek sorozata milyen számokat jelenít meg. A használt ábrázolási rendszer meghatározza, hogy a "11" számot a bináris háromnak, vagy a decimális tizenegynek, vagy a hexadecimális tizenhétnek, vagy a használt számrendszer alapszámának függvényében más számnak kell érteni. Egyébként az "11" szám minden számrendszerben az alapszámnál eggyel nagyobb számot jelöli. Számrendszer Elméletileg egy számrendszernek meg kell határoznia: • A használt számok egy csoportjának (pl. minden egész számok vagy valós számok) ábrázolási szabályait; • Egy egyedi ábrázolást (vagy ábrázolási szabályt) minden számhoz ; • Az aritmetikai (esetleg algebrai) szabályokat. Például, a leggyakrabban használt decimális számábrázolás minden számhoz egy egyedi, a jegyek egy véges sorozatát rendeli, megadja a megfelelő aritmetikai műveletek szabályait (összeadás, kivonás, szorzás és osztás) illetve meghatároz egy algoritmust a számláláshoz. Számrendszer Egy helyiértékes számrendszerben, aminek alapszáma b, ennyi szimbólumot vagy számjegyet használnak az első b természetes szám leírására, beleértve a nullát is. A többi szám előállításában a szimbólumok helyének is szerepe van. Az utolsó pozícióban álló számjegy megegyezik a saját értékével, a tőle balra lévő pedig a b alapszámmal meg van szorozva. Ezzel a módszerrel véges számú szimbólummal bármely szám leírható. A számábrázolási rendszereket gyakran nevezik számrendszereknek, bár ez az elnevezés félrevezető: különböző számrendszerek, például a valós számok rendszere, a komplex számok rendszere, a p-adikus számok stb., nem tartoznak ehhez a fogalomhoz. Számrendszerek típusai A legegyszerűbb számrendszer az egyes számrendszer, unáris számrendszer, amelyben minden természetes számot megfelelő számú szimbólummal ábrázolnak. Ha a megjelenítésre a ′ szimbólumot választjuk, akkor például a hetes számot a következő képen jeleníthető meg: ′′′′′′′. Az unáris rendszer jól használható kisebb számok esetén. A számítástechnika néhány területén, például az Elias gamma kódolásnál, valamint az adattömörítési algoritmusok esetében gyakran használt számrendszer. Az unáris ábrázolás rövidebbé tételéhez gyakran használnak speciális szimbólumokat, amelyek különleges jelentéssel bírnak. Ezek a speciális szimbólumok gyakran a 10 különböző hatványait (10, 100, 1000 stb.) jelentik. Így például, ha ′ jelenti az 1-et, a – jelenti a 10-et, és + jelenti a 100- at, akkor a számok tömörített formában a következő képen ábrázolhatók: Számrendszerek típusai Még elegánsabb a helyiértékes rendszer: a világszerte használt 10-es alapú számrendszer csak a 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 számjegyeket használja. A felsorolás egyben a számok un. alaki értéke, a számjegy tényleges értéke helyiértéke attól függ, hogy a szám melyik pozíciójában áll, mert ekkor az alaki érték még megszorzódik a 10 alapszám adott pozíciója szerint hatványával. A 304 = 3×100 + 0×10 + 4. Meg kell jegyezni, hogy a zéró, amelynek használatára az előzőekben említett rendszerekben nem volt szükség, itt alapvetően fontos, mivel lehetővé teszi egy hatvány nagyságrend kihagyását, illetve "átugrását". A ma világszerte elterjedt arab számrendszer, amely valójában indiai eredetű, a 10-et alapszámnak tekintő helyiértékes rendszer. Számrendszerek típusai Az aritmetikai műveletek is sokkal egyszerűbbek a helyiérték-rendszerekben, mint az előzőekben megismert, ún. additív számrendszerekben, ugyanis az additív rendszerek elméletileg végtelen számú különböző szimbólumot kell, hogy használjanak a 10 különböző hatványainak ábrázolásához, míg a helyiérték-rendszerben ehhez elegendő 10 különböző szimbólum (10-es számrendszert feltételezve). A számítástechnika néhány területén egy módosított helyiérték-rendszert használnak, az ún. k alapú helyiérték-rendszert, amit bijektív számrendszernek neveznek, melyben a használható számjegyek az 1, 2, …, k (k ≥ 1), és a nullának egy üres karaktersorozat string felel meg. Ez a módszer biztosítja a bijekciót minden számjegyekből álló string halmaza és a nem-negatív egészek halmaza között, és elkerülhetővé teszi a nem-egyértelműséget a vezető nullák használata esetén. A bijektív k-alapú számrendszert k-adik jelölésnek is nevezik, de ez nem tévesztendő össze az un. p-adikus számokkal. A bijektív 1-es alapú rendszer megegyezik az unáris rendszerrel. Az informatikában 4 fő számrendszert használunk: Kettes (bináris) – 0, 1 Tízes (decimális) – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Nyolcas (oktális) – 0, 1, 2, 3, 4, 5, 6, 7 Tizenhatos (hexadecimális) – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Átváltás különböző számrendszerek között Egy egyszerű algoritmus segítségével 1020304 = 145757 * 7 + 5 átválthatók a pozitív egész számok egyik számrendszerből a másikba. Az algoritmus 145757 = 20822 * 7 + 3 maradékos osztások ismételt alkalmazását írja elő. Az algoritmus minden lépése után a 20822 = 2974 * 7 + 4 következő lépésben a kapott hányadost osztjuk 2974 = 424 * 7 + 6 tovább, egészen addig, míg a hányados 0 lesz. 424 = 60 * 7 + 4 Ekkor az osztási maradékok összeolvasva adják 60 = 8 * 7 + 4 az új számrendszerben a számot (vagyis a 8 = 1 * 7 + 1 szám alaki értékét). 1 = 0 * 7 + 1 => Például 1020304 10-es számrendszerbeli szám 11446435 7-es számrendszerbe váltása: Átváltás különböző számrendszerek között Például 10110111 2-es számrendszerbeli szám 5-ös számrendszerbe váltása: