Számábrázolás, számrendszerek, szöveges adattárolás
Adattárolás
Számrendszerek
A tízes vagy decimális számrendszer tíz számjegy, a 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 segítségével ábrázolja a számokat. A mindennapi életben ez a legelterjedtebb. Átváltás bináris számrendszerbe: A decimális számot addig osztom 2-vel, míg a hányados 0 nem lesz, majd a maradékokat fordított sorrendben, balról jobbra haladva kapjuk a bináris számot.
A kettes vagy bináris számrendszer két számjegy, a 0 és az 1 segítségével ábrázolja a számokat. Mivel digitális áramkörökben a számrendszerek közül a kettest a legegyszerűbb megvalósítani, a modern számítógépek szinte kivétel nélkül ezt használják. Technológiai szempontból a bináris jeleket egyszerűen és nagy biztonsággal lehet tárolni. A CD-n sötét és világos pontok, mágneslemezen a mágnesesség kétféle iránya, áramköröknél van áram nincs áram.
A tizenhatos vagy hexadecimális számrendszer a 16-os számon alapuló számrendszer az informatikában azért terjedt el, mert 4 bináris helyiértéken leírt értéket 1 helyiértéken ad meg. A tizenhatos számrendszer a 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 számjegyeken kívül az A, B, C, D, E, F betűket használja. A 0–9 számjegyek használata értelemszerű (azaz: a tízes számrendszernek megfelelő), az A számjegy 10-et, a B számjegy 11-et, a C számjegy 12-t, a D számjegy 13-at, az E számjegy 14-et és az F számjegy 15–öt jelöl (ez összesen 16 számjegy, hiszen a nulla az első) (pl.: RGB szín kódok).
Számok tárolása
Az egész számokat 1 byte-on (8 bit) 0…255 vagy -128…0…+127 tudjuk ábrázolni. A pozitív egész számokat kiegészítjük bájtnyi mennyiségre, és az 1 byte-on tárolható legnagyobb szám 28-1=255. Pl.: 83 decimális szám 01010011 bináris szám 53 hexadecimális szám. Negatív egész számokat első lépésben pozitív számként átváltjuk 2-es számrendszerbe, majd jobbról balra haladva az első 1-ig, és még az első 1-t is mindent változatlanul leírok, majd a többi jegyet az ellentétére váltva írom le. Pl.: -83 decimális szám1(előjel bit, ha 1, akkor -, ha 0, akkor +)0101101.
Létezik fixpontos és lebegőpontos számábrázolás (ezeket a valós számok ábrázolásánál használják):
- A fixpontos számábrázolásnak a lényege, hogy megadjuk a vessző helyét, ami elválasztja az egész részt, a tőrt résztől. Az egész rész a szám nagyságáért felelős, míg a tört rész a szám pontosságáért felel.
- A lebegőpontos számábrázolás 4-, 6-, 8-, 10- vagy 16 byte-on történhet. A lebegő pontos számábrázolásnál a számokat normál alakra hozzuk, vagyis nullára normalizáljuk, pl.: 13000=0,13(mantissza)*10(számrendszer)4(karakterisztika).
A mantissza a szám pontosságáért felel, míg a karakterisztika a szám nagyságáért felel.
Karakterek ábrázolása
- Karakter tábla felépítése: betűk, írásjelek, számok, vezérlő karakterek, egyéb szimbólumok. Minden karakternek van egy karakter kódja, pl.: A 65. Ezeket kellett szabványosítani több kódtáblában (pl.: ASCII; Unicode; UTF8).
- ASCII- KÓD: (American Standard Code for Information Interchange) egy karakterkészlet és karakterkódolási szabvány, amely a latin ábécén alapul és az angol nyelvben és sok nyugat-európai nyelvben használatos betűket tartalmazza.
ASCII kódtábla felépítése (1 Byte-on)
0-32 Vezérlő karakterek
31-127 Angol ABC betűi, írásjelek, számjegyek
128-255 Nemzet függő karakterek - UNICODE: az egyik elterjedt megoldás a természetes nyelvekben megtalálható különböző írásjelek egységes kódtáblába foglalására. A Windows rendszerek kódtáblája, 2 Byte-on (216-1) tárolja a karaktereket, ezért kb. 65000 karakter képes tárolni.
- UTF-8: (8-bit Unicode Transformation Format, 8 bites Unicode átalakítási formátum) egy veszteségmentes, változó hosszúságú Unicode karakterkódolási eljárás, melyet Rob Pike és Ken Thompson készített. Bármilyen Unicode karaktert képes reprezentálni, ugyanakkor visszafelé kompatibilis a 7 bites ASCII szabvánnyal. Az UTF-8 kódolás különösen alkalmas 8 bites átviteli közegek számára, mint amilyen az e-mail vagy a weblapok.
Szöveg, string tárolása
Alapvetően 2 féle szövegtárolási módot különböztetünk meg: hosszjeles és végjeles.
- Hosszjeles szövegtárolási mód: a szöveg korlátozott hosszúságú lehet, mert a szöveg előtti karakterszám (ami nem karakter, hanem szöveghossz jelölő!) maximálisan 255 lehet, ami az utána következő szöveg hosszát határozza meg. Pl: 4 a l m a
- Végjeles szövegtárolási mód: a szöveg korlátlan hosszúságú lehet, mert a szöveg végére tesz egy jelzést, hogy vége a szövegnek, ezt a jelölést hívják „End Of String”-nek.
a l m a EOS
A string mérete mindig megegyezik a karakterszámmal.