Számrendszerek az informatikábanA digitális informatikában minden információt kettes számrendszerbeli számok segítségével írnak le. A számjegyeket biteknek nevezik. Egy-egy bitet hardver szinten általában egy vezeték szállít vagy egy elemi memóriacella tárol két jól elkülöníthető feszültségszint segítségével. Ez a megközelítés relatív könnyűvé teszi az információ elektronikus kezelését. Ezen alaphelyzetet figyelembe véve a szakemberek számára praktikus volt bevetni olyan nem 10-es számrendszereket, melynek alapja 2 valamely hatványa. A leggyakrabban használt ilyen a 2-es (bináris), a 8-as (oktális) és a 16-os (hexadecimális). A tízes számrendszernek nincsen különleges informatikai szerepe, annak fontos szerepe abban rejlik, hogy a mindennapi életben azt használjuk. BinárisAz adott számrendszerben szerepeltethető számjegyek: 0 és 1 A kettes számrendszer is a súlyozott, helyiértékes számrendszerekhez tartozik. Alapja a 2, ennek a hatványai adják a helyiértékeket. Tört számokat is lehet konvertálni kettes számrendszerbe, ilyenkor a 'tizedes vessző' után következő (decimális számrendszerben az egynél kisebb) érték kettőnek szintén hatványaként lesz kifejezve, de a negatív hatványokat használjuk. OktálisAz adott számrendszerben szerepeltethető számjegyek: 0-tól 7-ig. Több programozási nyelv (pl. C/C++) és futtatókörnyezet (pl. bash) a nullával kezdődő számokat nem decimálisként, hanem oktálisként értelmezi. Ez alól a hexadecimális kivétel, amelyet HexadecimálisAz adott számrendszerben szerepeltethető számjegyek: 0-tól 9-ig. Mivel azonban ez itt már nem elég, ezért a latin ábécé nagybetűit is használni kell: az A, B, C, D, E, F betűket, melyek értéke rendre 10, 11, 12, 13, 14, 15. Bár az azonos kis és nagy betűk ugyanazt az értéket jelölik, a nagybetűs jelölés az elterjedtebb. Számkonstansok megadásakor Főként programozók és informatikusok kedvelik, bináris fájlok értelmezésében van segítségükre. Egy hexadecimális számjegy pontosan 4 bitet ír le, kettő pedig egy bájtot. ÁtszámításokDecimálisból binárisbaAdott számjegyet (decimális, azaz tízes számrendszer) sorozatosan elosztunk 2-vel. Az osztás maradékát feljegyezzük (0, vagy 1), majd az osztás során az eredmény egészrészét osztjuk tovább. Pl.: dec maradék dec maradék maradék 1 0 1 1 1 1 ------------ ------------ ----------------------- hányados |1|2|5|11|23|47 47 | 1 24 | 0 23 | 1 12 | 0 11 | 1 6 | 0 5 | 1 3 | 1 2 | 0 1 | 1 1 | 1 A maradékoszlop számsorát a decimális sor utolsó egyesével együtt felírjuk lentről felfelé és megkapjuk az adott decimális szám bináris megfelelőjét. 47 → 101111 (informatikában: 00101111) jelen esetben a két 0 eléírása csak abban az esetben igaz, ha a 32 bites IP-címzésnél az oktetenkénti nyolcbitnyi értékre van szükségük. 24 → 11000 (informatikában: 00011000)jelen esetben a három 0 eléírása csak abban az esetben igaz, ha a 32 bites IP-címzésnél az oktetenkénti nyolcbitnyi értékre van szükségük. Binárisból decimálisbaMint minden számrendszer, a bináris is helyiértékek összegével írható fel. Azaz 20-on, 21-őn… Azokat a helyiértékeket, melyek 1-essel vannak jelölve, decimálisan összeadjuk, az összeg a decimális érték lesz. Pl.: "helyiértékesítve": 25 24 23 22 21 20 bináris: 1 0 1 1 1 1 A számjegyek helyiértékeinek összegét számolva: 25+23+22+21+20=32+8+4+2+1=47 Szokásos, hogy az informatikában a byte kódolás miatt nyolc számjegyen (vagy annak egész számú többszörösén) számolnak, azaz az iménti számot így lehet 8 bites alakban felírni: bináris: 00101111 MűveletekNegációLogikai NEM Bináris számrendszerben (bájt kódolással, azaz 8 helyiértékre számítva): 27 26 25 24 23 22 21 20 bináris: 0 0 1 0 1 1 1 1 Minden számjegy ellenkezővé alakítása (0-ból 1-es, 1-ből 0) 27 26 25 24 23 22 21 20 bináris: 1 1 0 1 0 0 0 0 Shift (bitenkénti eltolás)Szintén jellemzően a bináris számrendszerre alkalmazzuk. Az adott számsort „eltoljuk” balra (Shift left – SHL), vagy jobbra (Shift right – SHR), a „kieső” számjegyek összege 2 elvesznek az eltolás irányába, a másik oldalról 0-val töltjük fel a számsort. A Shift művelet szorzást, illetve (egész)osztást eredményez a bináris számon: SHL (1) input: 0 1 0 0 1 1 0 1 → 77 output: 1 0 0 1 1 0 1 0 → 154 SHR (1) input: 0 1 0 0 1 1 0 1 → 77 output: 0 0 1 0 0 1 1 0 → 38 További információk |