Számábrázolás
Számábrázolás alapjai a digitális számítógépek a kettes számrend-szert használják a számábrázoláshoz egy helyiértéket 1 biten tárolnak (2 érték) egy bájton 28 (256) különböző, előjel nélküli szám ábrázolható (0-255-ig) két bájton 216 (65536) különböző egész szám ábrázolható (0-65535-ig) csak pozitív egész számokra használható
Számábrázolási módszerek egész számok esetében általában előre rögzítik az ábrázolásra használt bájtok számát ezt nevezzük fixpontos ábrázolásnak negatív egész számok esetében több lehetőségünk van az ábrázolásra: előjelbites ábrázolás kettes komplemens
Előjelbites számábrázolás a legmagasabb helyiértékű szám az előjelet jelenti nem vesz részt a számképzésben egy bájton ábrázolható tartomány: -127-127 probléma: 0-át kétféleképpen ábrázolhatjuk (00000002 és 100000002) ez a számolás automatizálását nehezíti Pl.: 010110112 = 9110 110110112 = -9110
Kettes komplemens két lépésben képezhetjük egy szám kettes komplemensét: minden bitet ellenkezőjére váltunk (egyes komplemens) az ellenkezőre váltott számhoz hozzáadunk 1-et (a kettes számrendszerben történő összeadás szabályai szerint) előnye, hogy a 0-át csak egyféleképpen tároljuk (000000002) ábrázolható tartomány 1 bájton: -128-127, 2 bájton –32768-32767 a kivonás egyszerűvé válik: a kivonandó számhoz hozzáadjuk a kettes komplemensét
Kettes komplemes (folyt.) Példa: kiindulási szám: 010110112 (= 9110) minden bitet ellenkezőre váltunk: 101001002 hozzáadunk 1-et: 101001012 (= -9110)
Összeadás kettes számrendszerben Összeadási lehetőségek: 0 1 0 1 1 +0 + 0 + 1 + 1 1 0 1 1 10 +1 11
Kivonás kettes számrendszerben Példa: 155 100110112 - 72 010010002 A kivonandó (72) számot negatívvá alakítjuk (kettes komplemenssel): 10110111 + 1 10111000
Kivonás kettes számrendszerben (folyt.) Az eredeti számot (155) és a kettes komplemest (-72) összeadjuk: (155 - -72 = 155+72) 10011011 + 10111000 101010011 Ha az összeadás eredménye 9 jegyű lesz, akkor a felsőt le kell húzni, mivel az túlcsordulásnak számít (csak 8 biten ábrázolunk)
Lebegőpontos ábrázolás törtek ábrázolására 10-es számrendszerben két részre osztható a tört: egészrész tizedesrész a kettőt a tizedesvessző választja el kettes számrendszerben a törteket normál alakban írjuk fel
Normál alak tízes számrendszerben: 417=4,7*102 kettes számrendszerben: 111:000001=0:111000001*211 az egész és a törtrész közötti jelet kettedespontnak hívjuk képzése hasonlóan történik, mint a tízes számrendszerben a hatványt is kettes számrendszerben kell felírni (211=23)
Lebegőpontos szám képzése normál alakból Kiindulás: normál alak (0:111000001*211) a feleslegesen tárolandó számjegyek lehúzása: 0:111000001*211 meg kell állapítani, hogy a normál alak képzésénél merre vittük a kettedespontot balra → 0 jobbra → 1 leírjuk egymás után a megmaradt számot, majd a balra/jobbra értékét, végül a kitevőt: 11000001011
Lebegőpontosan tárolt szám részei 11000001 0 11 mantissza karakterisztika (számalak) (előjel+kitevő)
Karakter és betű ábrázolása 1 bájton nemcsak számokat, hanem 256 különböző jelet is tárolhatunk PC-knél elterjedt az amerikai szabványos kódrendszer (ASCII) ez kezdetben 7 bitet használt, ami 128 jelre volt elegendő később további jelekre volt szükség (pl.: nemzeti karakterek), így 8 bitesre (1 byte) bővült
ASCII kódrendszer csoportjai vezérlőkarakterek írásjelek számjegyek növekvő sorrendben angol ABC nagybetűi angol ABC kisbetűi néhány ékezetes karakter grafikus jelek
ASCII kódrendszer jellemzői Ez a verzió nincs felkészítve minden nemzet nyelvére, ezért különböző kódtáblázatokat hoztak létre (magyar: 852-es kódtábla – Latin II.) A kódtáblák első 128 karaktere megegyezik, eltérés a felső 128 karakterben található
Unicode különböző írásrendszerek egységes használatát teszi lehetővé 16 biten (2 bájton) tárolja a jeleket, amibe minden nemzeti karakter belefér ügyeltek arra, hogy az ASCII kóddal készült szöveg Unicode-ban is olvasható legyen legelterjedtebb kódolási verziója az UTF-8 1991-től kezdték használni