Adatábrázolás

Adat digitalizálási lehetőségek

Numerikus adatok tárolása

Akkor tárolunk numerikusan adatot, ha matematikai műveletet (összeadás, kivonás, ...) lehet rajta értelmezni.

A mindennapi életben többnyire a decimális helyiértékes számrendszert használjuk, de a számítógépes műveletvégzésre a bináris számrendszer a legalkalmasabb (lsd.: Claude Elwood Shannon 1916-2001 munkássága). Ezért a decimálisan kapott értéket tárolás előtt a bináris megfelelőjére alakítjuk. A számítógépek mindegyike fizikailag kiépített kommunikációs csatornákkal rendelkezik (adatbusz, címbusz és vezérlősínek) amelyek fizikailag meghatározzák egyszerre mennyi bittel milyen műveletet képes elvégezni. A fejlődés során kialakult a 8 bites szóhossz, ennek többszöröseire tervezik a CPU-kat. Az adattárolásnál is ez az alap (8 bit = 1 byte). Jobb olvashatósága miatt az informatikusok előszeretettel használják a hexadecimális számrendszert, mert ezzel biztosabban olvashatóvá és negyed olyan hosszúságúvá válnak (24 = 16) a hosszú bináris jelsorozatok.

Fixpontos számábrázolás

A fixpontos számábrázolás lényege, hogy a szám kettes számrendszerbeli számjegyeit egy rögzített nagyságú memóriaterületen tárolja, minden bithez a kettes számrendszer helyi értékeit rendeli.

Előjel nélküli egész számok ábrázolása
A számítógép az egész számot bináris jelekké alakítja át. A számítógép meghatározott számú bitet (állandó szóhosszúságot) használ az ábrázoláshoz. Ha a szám ennél rövidebb, nullákkal egészíti ki balról a gép az adott szóhosszúság eléréséhez.
pl.: 8910 = 0101 10012; 910 = 0000 10012
Előjeles egész számok ábrázolása
Az ábrázolásnál a legelső bit előjelként működik. Ha a bit 0, akkor pozitív, ha 1-es, akkor negatív számról van szó.
Negatív szám esetén a bináris érték kettes komplemensét tárolja, így egyszerűbb kapuáramkörök segítsével végezhetők vele a műveletek.
pl.: 8910 = 0101 10012; -8910 = 1010 01112

Lebegőpontos számábrázolás - IEEE 754

Az 54.5937510 32 bites IEEE 754 alakja: 010000100101101001100000000000002

  1. átváltjuk 54.5937510 = 110110.100112
  2. számítástechnikai normál alakra hozzuk 110110.10011 = 0.11011010011*2-5
  3. a 0. bitet beállítjuk 0-ra, ha pozitív a szám, 1-re ha negatív
  4. következő 8 bit a 127-el eltolt a karakterisztika (127 + 5)10 = 13210 = 1000 01002
  5. a maradék 23 bit a mantissza, vezető 1-es nélkül 101101001100000000000002

IEEE-754 Floating Point Converter

BCD-kód (Binary Coded Decimal)

A decimális tört (frakció) végtelen szakaszos kettedes törtalakja akkor jön létre, ha a nevezőjében (miután leegyszerűsítettük) található más prímtényező is, mint a 2. Ha a nevező kizárólag a 2 hatványait tartalmazza, akkor a bináris alak véges lesz.

  • 1/3 0.010101... (végtelen szakaszos)
  • 1/5 0.0011... (végtelen szakaszos)
  • 1/6 0.00101... (végtelen szakaszos)

Ezért ha nem akarunk a ~15-ik decimális számjegy környékén pontatlanságot a decimálisból binárisba, abból újra decimálisba való átalakítás során akkor a BCD kódolást kell használnunk.

Pontossága miatt a rövid távú adatátvitelnél is általában ezt a kódolási formát használják.

Karakterek kódolása

Az ember számára értelmezhető jeleket (kisbetű, nagybetű, írásjelek, számjegyek, ...) egy adott táblázat szerint numerikus értékekkel helyettesítjük. Kezdetben volt az ASCII táblázat. Ez került be minimális eltéréssel az ANSI-ba. A 90'-es években az európai nemzetek is létrehozták a saját nemzeti karaktertáblájukat, így születtek meg az ISO-k. A Microsoft természetesen felülemelkedett ezeken a kötöttségeken és létrehozta a különböző Latin kód táblákat. A káosznak az UTF-8 2003-as bevezetése vetett volna véget, de sajnos még nagyon sok programot nem írtak át.

Az UTF-8 egy változó hosszúságú karakterkódolási szabvány. Az UTF-8 képes mind az 1 112 064 (~222) érvényes Unicode karakter kódolására egy-négy egybájtos (8 bites) kódegység használatával. Az alacsonyabb numerikus értékű karakterek, amelyek gyakrabban fordulnak elő, kevesebb bájttal vannak kódolva. Úgy tervezték, hogy visszafelé kompatibilis legyen az ASCII- vel: a Unicode első 128 karaktere, amely egy az egyben megfelel az ASCII-nek, egyetlen bájttal van kódolva, ugyanazzal a bináris értékkel, mint az ASCII, így az érvényes ASCII szöveg érvényes UTF-8 -kódolt Unicode is.