A számrendszer (avagy számábrázolási rendszer) egy olyan konvencionális szimbólum-, illetve szabályrendszer, amely meghatározza a számok leírásának, ábrázolásának módját. A számrendszerek jelölési rendszerek, hasonlóan az ábécékhez.
A számjegyek olyan szimbólumok csoportja, amelyekkel különböző számok írhatóak le. A számjegyek éppen úgy különböznek az általuk leírt számtól, mint a betűk a belőlük felépülő szótól. Például a "11", "XI" és "tizenegy" jelsorozatok különböznek, de ugyanazt az értelmet hordozzák (egy számot, mennyiséget írnak le).
Egy számrendszer egységes szabályok alapján meghatározza, hogy bizonyos számjegyekből képzett sorozatok milyen számokat jelenítenek meg. A használt ábrázolási rendszer meghatározza, hogy például a "11"-et binárisan háromnak, decimálisan tizenegynek, vagy éppen hexadecimálisan tizenhétnek kell érteni stb. Ezt a számrendszer alapszáma határozza meg.
Egy számrendszer elvárt jellemzői:
ábrázolja logikus, egységes szabályok szerint egy adott számhalmaz minden elemét (pl. az egész, racionális vagy valós számokat); rendeljen lehetőleg egyedi ábrázolást mindegyik számhoz (de legalábbis minden szabályos ábrázolás egyetlen számértéknek feleljen meg); tükrözze a számok aritmetikai (és esetleg algebrai) szerkezetét, felépítését.
Például a mindennapjainkban használt tízes alapú (decimális) számábrázolással leírható az összes racionális szám, minden ilyen számhoz számjegyek egy véges sorozatát rendeli, megadja az alapvető aritmetikai műveletek szabályait (összeadás, kivonás, szorzás és osztás), illetve meghatároz egy algoritmust a számláláshoz. Ugyanakkor a számértékek és számábrázolások közti megfeleltetés nem egyértelmű kölcsönösen, hiszen például a 10-et leírhatjuk többféleképpen (de bármely más számot is): "10"; "10,0"; "10,00"; "10,000" stb. Ettől függetlenül a decimális számrendszer megfelelő (tudjuk, hogy a 0-s tizedesjegyek a számok végéről elhagyhatóak).David Darling: The Universal Book of Mathematics, John Wiley & Sons, Inc., 2004, p. 224.
A 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 7-es szám a következőképpen jeleníthető meg: ′′′′′′′. Ilyenkor az 1-et ′ jelöli, a 0-t pedig az üres karaktersorozat (vagyis a szimbólum hiánya). 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 számábrázolás rövidebbé tételéhez gyakran használnak további szimbólumokat, amelyek nagyobb értékeket jelölnek – gyakran a 10 különböző hatványait (10, 100, 1000 stb.). Ezzel eljutunk egy másik számrendszer-típushoz. Például, ha ′ jelenti az 1-et, – jelenti a 10-et, és + a 100-at, akkor a számok tömörebb formában ábrázolhatóak, pl. +++′′′′ lesz a 304 és +--′′′ lesz a 123. Ezzel már egy másik számrendszer-típusohz jutunk. Az ókori egyiptomiak ehhez hasonló számábrázolási rendszert használtak, a római számrendszer is ennek egy módosítása.
Napjainkban ezeknél gyakrabban használnak olyan rendszereket, amelyekben külön speciális rövidítéseket alkalmaznak az egymásután ismétlődő szimbólumok helyettesítésére. Például ha az angol ábécé első 9 betűjét használjuk a többszörös előfordulások rövidítésére (A jelenti az egyszeres előfordulást, B jelenti a kétszeres előfordulást, és így tovább), akkor a korábban +++′′′′ formában ábrázolt 304-es számot most C+D′ formában írhatjuk, a 123-at pedig +--′′′ helyett A+B-C′ alakban.
Még elegánsabbak a helyi értékes számrendszerek. Ezek b alapú számrendszerek, ahol b egy 1-nél nagyobb természetes szám. Egy b alapú helyi értékes számrendszer pontosan b darab különböző szimbólumot (számjegyet) használ.
A mindennapjainkban legelterjedtebb az arab számrendszer, azaz a helyi értékes b=10-es alapú, avagy decimális számrendszer, ami a 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 számjegyeket használja. Amikor ezekből alkotunk számokat, a felsorolásban a jegyek ún. alaki értéke szerepel, egy számjegy tényleges értéke (helyi értéke) azonban attól is függ, hogy a számjegysorozat hányadik pozícióján áll. A helyi értéket úgy kapjuk, hogy az alaki értéket megszorozzuk az alapszám (vagyis a 10) egy pozíciótól függő hatványával. A számjegysorozat alkotta szám értéke pedig ezen helyi értékek összege lesz. Például: a 304-ben szereplő alaki értékek 3, 0 és 4, ezek helyi értékei 3×100, 0×10 és 4×1, és ezek összegeként áll elő maga a 304 (3×100 + 0×10 + 4×1 = 304). Meg kell jegyezni, hogy a zéró (0), amelynek használatára az előzőekben említett rendszerekben nem volt szükség, itt alapvető fontosságú, mivel lehetővé teszi egy nagyságrend kihagyását („átugrását”).
A 10-es alapú számrendszer mellett a legelterjedtebb alkalmazása a kettes (bináris) és tizenhatos (hexadecimális) számrendszereknek van – mindkettő elsősorban az informatika, programozás és egyéb számítógéppel kapcsolatos területeken bír nagy jelentőséggel.
A alapú helyi értékes számrendszerek a 10-es számrendszer 0-tól 9-ig terjedő számjegyei közül az első b darabot használják, tehát például a bináris számrendszer csak a 0-t és az 1-et.
A alapú helyi értékes számrendszerek rendszerint használják a 0–9 számjegyeket, a szükséges további 10-b szimbólumot az angol ábécé egymást követő nagybetűi (vagy ritkábban kisbetűi) adják. Tehát például a hexadecimális számrendszer által használ szimbólumok a 0–9 számjegyek és az A–F betűk.
A helyi értékes számrendszerekben a természetes számok egyértelműen ábrázolhatóak. Az ábrázolás kiterjeszthető a véges tizedestörtek halmazára két további szimbólum, egy negatív előjel (-) és egy ún. tizedesvessző (,) bevezetésével (sok országban a tizedesvesszőt tizedespont helyettesíti). Amennyiben 0-nál kisebb számot akarunk ábrázolni, a negatív előjel közvetlen a számjegysorozat előtt kell megjelenjen. Ha nem egész számot akarunk ábrázolni, az egésznél kisebb részek a tizedesvessző után kell megjelenjenek. Ilyen módszerrel véges szimbólumsorozattal bármelyik véges tizedestört ábrázolható.
A közvetlen tizedesvessző előtti jegy (az egyes helyi értéken álló számjegy) helyi értéke önmaga, a közvetlen előtte álló jegy helyi értéke alaki értékének a b-szerese, az azelőtt álló jegy helyi értéke alaki értékének b2-szerese és így tovább. A közvetlen tizedesvessző utáni jegy helyi értéke alaki értékének a b-ed része, az azutáni jegy helyi értéke alaki értékének b2-ed része és így tovább. Ezeket figyelembe véve felírható egy általános matematikai formula adott b alapszámú helyi értékes számrendszerben ábrázolt számokra.
Megjegyzendő, hogy a racionális számok is leírhatóak véges szimbólumsorozattal, amennyiben a tiszta szakaszos és vegyes szakaszos tizedes törtek ábrázolásának céljából bevezetünk még egy szimbólumot: a zárójelpárt. Az irracionális számok nem ábrázolhatóak helyi értékes számrendszerekben véges számú szimbólum segítségével, tehát a helyi értékes számrendszerek nem elegendőek a valós számok maradéktalan ábrázolásához. A számítógépeken működő lebegőpontos számábrázolás a szükségszerű adatvesztést igyekszik a lehetőségekhez mérten minimális mértékűre csökkenteni.
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.
Történet
Lásd még: A természetes számok története és a nulla.
A történelem előtti időkben a számokat fából vagy kövekből faragott „pálcikák” reprezentálták. A kőkorszaki kultúrákban, ideértve az ősi amerikai indián csoportokat, a pálcikákat lovak, szolgák, személyes szolgáltatások adás-vételénél, illetve szerencsejátékoknál használták.
A legelső írott emlékeket a pálcikák használatáról a sumerek hagyatékai között találták, agyagtáblákba karcolták, amelyeket később néha kiégettek. A sumerek a kissé különleges, a 10-es, 12-es és 60-as alapú számrendszer kombinációját használták az asztronómiai és egyéb számításaiknál. Ezt a rendszer átvették és az asztronómiában használták az ősi mediterrán nemzetek (akkádok, görögök, rómaiak és egyiptomiak). A rendszer maradványait könnyen felismerhetjük a mai idő- (órák, percek) és a szögmérésben (szögpercek).
Kínában, a katonák és a gazdálkodók már a maradékokat is használták a számításaikban (prímszámok). A csapatok számának, illetve a rizs mennyiségének méréséhez a pálcikák egyedi kombinációi szolgáltak. A számításokat kényelmesebbé tette a moduláris aritmetika, ami megkönnyítette a szorzást. A moduláris aritmetika használata egyszerűvé tette a számításokat. A moduláris aritmetikát ma a digitális jelfeldolgozás használja.
A Római Birodalomban a pálcikákat viaszba vagy kőbe karcolták, vagy papiruszra írták és a számok ábrázolására a görögöktől átvett rendszert használták, de egyes számokra saját jeleket vezettek be. A római számrendszer használata a helyiérték-rendszer bevezetése előtt (1500-as évek) általános volt.
A közép-amerikai maja kultúra egy 20 vagy 18 alapú számrendszert használt, ismerték már a helyi értékeket és a nulla fogalmát. Nagyon pontos asztronómiai számításokat végeztek, különösen az év hosszával és a Vénusz pályájával kapcsolatban.
Az Inka Birodalom kiterjedt gazdaságirányítási rendszert működtetett kipu, ahol pálcikák helyett színes fonalakra kötött csomókat használtak. A csomók és színek használata a spanyol hódítók a 16. században történt megjelenésével feledésbe merült, ennek ellenére egy kipuhoz hasonló, egyszerű jelzésrendszer még ma is használatos az Andok területén.
Néhány szerző azt feltételezi, hogy a helyiérték-rendszert széles körben az abakusz használatával a kínaiak terjesztették el. Az első írásos emlékek a pálcikákról, illetve az abakusz használatáról 400 körüliek. A kínai matematikusok a nullát csak 932 körül írták le.
Indiából, ahol már ismerték a modern helyi értékes rendszert, valószínűleg egy Indiába küldött követ által, egy 773 körül vásárolt asztronómiai táblázat közvetítésével jutott el a rendszer az arabokhoz. A rendszerek részleteit lásd arab számok és indiai számok.
A iszlám fejedelmek és Afrika, valamint az India közötti élénk kereskedelem juttatta el az indiaiak által használt rendszert Kairóba. Az arab matematikusok kibővítették az általuk addig használt rendszert a decimális hatványokkal, amit al-Hvárizmi a 9. században már írásban rögzített. A rendszerrel Európát Fibonacci a Liber Abaci 1201-ben, Spanyolországban megjelent munkájában ismertette meg, lefordítva az arab forrást. Így Európába a 12. században jutott el arab közvetítéssel a nullával kiegészített teljes indiai rendszer.
A 2-es alapú bináris rendszert már a 17. században Gottfried Leibniz ismertette, aki Kínában hallott róla, de általános használata a 20. században, a számítógépek megjelenésével terjedt el.
Alapszámok használata
Manapság a 10-es alapú számrendszer a legelterjedtebben használt számrendszer. Feltehetően a rendszer elterjedtségének az az oka, hogy az embereknek tíz ujjuk van (kezükön).