Bérci Norbert: Számábrázolás, Karakterkódolás Jegyzet
Total Page:16
File Type:pdf, Size:1020Kb
Sz´am´abr´azol´as ´es karakterk´odol´as (jegyzet) B´erci Norbert 2014. szeptember 15-16-i ´ora anyaga Tartalomjegyz´ek 1. Sz´amrendszerek1 1.1. A sz´amrendszer alapja ´esa sz´amjegyek........................2 1.2. Alaki- ´es helyi´ert´ek...................................2 1.3. Eg´esz sz´amok le´ır´asa..................................2 1.4. Nem eg´eszsz´amokle´ır´asa...............................3 1.5. Atv´alt´assz´amrendszerek´ k¨oz¨ott............................3 1.6. Feladatok........................................3 1.7. Sz´amrendszerek pontoss´aga..............................4 2. M´ert´ekegys´egek4 3. G´epi sz´am´abr´azol´as4 3.1. Nem negat´ıv eg´esz sz´amok ´abr´azol´asa........................5 3.2. Negat´ıv eg´esz sz´amok´abr´azol´asa...........................5 3.3. Eg´esz sz´amok adat´abr´azol´asainak ¨osszehasonl´ıt´asa.................7 3.4. Eg´esz sz´amok ´abr´azol´asihat´arai´espontoss´aga...................7 3.5. A lebeg}opontos sz´am´abr´azol´as.............................9 3.6. Az IEEE 754 lebeg}opontos sz´am´abr´azol´as...................... 13 3.7. Numerikus matematika................................ 14 4. Karakterek ´esk´odol´asuk 15 4.1. Karakterek ´es karakterk´eszletek............................ 15 4.2. Karakterek k´odol´asa.................................. 15 4.3. Klasszikus k´odt´abl´ak.................................. 15 4.4. A Unicode........................................ 16 4.5. Sz¨ovegf´ajlok....................................... 17 4.6. Feladatok........................................ 17 1. Sz´amrendszerek A sz´amrendszer [numeral system - nem numeric system!] a sz´am(mint matematikai fogalom)´ırott form´abant¨ort´en}omegjelen´ıt´es´ere alkalmas m´odszer. Ebben a r´eszben a helyi´ert´eken (poz´ıci´on) alapul´osz´amrendszereket t´argyaljuk. L´eteznek nem poz´ıci´onalapul´osz´amrendszerek is, ilyenek p´eld´aul a sorrendis´egen alapul´or´omai sz´amok, de ezekkel a tov´abbiakban nem foglalkozunk. 0Revision : 60 (Date : 2014 − 09 − 2011 : 16 : 32 + 0200(Sat; 20Sep2014)) 1 1.1. A sz´amrendszer alapja ´es a sz´amjegyek A helyi´ert´eken alapul´osz´amrendszerek k´etlegfontosabb param´etere a sz´amrendszer alapja [base, radix] ´es az egyes poz´ıci´okba ´ırhat´osz´amjegyek [digit]. Ezek nem fuggetlenek:¨ a sz´amrendszer alapja meghat´arozza az egyes poz´ıci´okba ´ırhat´osz´amjegyek maximum´at: ha a sz´amrendszer A alap´u, akkor a legkisebb felhaszn´alhat´osz´amjegy a 0, a legnagyobb az A − 1. 1.1.1. p´elda. A t´ızes sz´amrendszerben a 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 sz´amjegyek szerepelhetnek, a nyolcas sz´amrendszerben a 0; 1; 2; 3; 4; 5; 6; 7 sz´amjegyek k¨ozul¨ v´alaszthatunk, m´ıg a kettesben a 0; 1 a k´etlehets´eges sz´amjegy. T´ızn´elnagyobb alap´usz´amrendszerek eset´eben a sz´amjegyek halmaz´at9 ut´anaz ABC bet}uivel eg´esz´ıtjuk¨ ki. A kis ´esnagybet}ukk¨oz¨ott ´altal´aban nem teszunk¨ kul¨ ¨onbs´eget, b´aregyes nagy alap´usz´amrendszerekn´el erre m´egis szuks´eglehet.¨ 1.1.2. p´elda. A tizenhatos sz´amrendszerben haszn´alhat´o sz´amjegyek": 0, 1, 2, 3, 4, 5, 6, 7, 8, " 9, a, b, c, d, e, f (vagy 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). Ha az a sz¨ovegk¨ornyezetb}olnem egy´ertelm}u, a sz´amrendszer alapj´atsz¨ogletes z´ar´ojelben a jobb als´oindexbe t´eve jel¨olhetjuk.¨ P´eld´aul: 5221[10], 726[8] vagy 80[16]. A j´olismert t´ızes alap´u decim´alis sz´amrendszeren k´ıvul¨ az informatik´abana leggyakrabban haszn´altak a k¨ovetkez}ok: a kettes alap´u bin´aris, a nyolcas alap´u okt´alis ´esa tizenhatos alap´u hexadecim´alis. Az el}oz}oekben eml´ıtett, indexben t¨ort´en}osz´amrendszer megad´asmellett bin´a- ris sz´amrendszer jel¨ol´es´ere haszn´alatos a b postfix, okt´alis esetben egy kezd}o0 szerepeltet´ese, hexadecim´alis sz´amok eset´ena 0x, 0X prefixek vagy a h postfix. Az informatik´abanezeket a jel¨ol´eseket haszn´aljuk a legink´abb. P´eld´aul: 100b (bin´aris), 065 (okt´alis), 0x243 (hexadecim´alis), 0X331 (hexadecim´alis), 22h (hexadecim´alis). Ha sem a sz´amel}ott, sem ut´ana,sem az index´eben nincs jel¨olve, akkor decim´alis sz´amrendszerben ´ertelmezzuk¨ a le´ırtakat. 1.2. Alaki- ´eshelyi´ert´ek Egy adott sz´amrendszerben le´ırt sz´ameset´eben egy sz´amjegy ´ert´eke egyenl}oa sz´amjegy alaki ´ert´ek´enek ´es helyi´ert´ek´enek szorzat´aval. A sz´amjegy alaki ´ert´eke a sz´amjegyhez tartoz´o´ert´ek, a helyi´ert´ek pedig a sz´amrendszer alapj´anak a poz´ıci´oszerinti hatv´anya. A 0; 1;:::; 9 eset´eben az alaki ´ert´ek egy´ertelm}u, a bet}ukkel kieg´esz´ıtett esetben ezek: a=10, b=11, c=12, d=13 stb. 1.2.1. p´elda. A t´ızes sz´amrendszerben fel´ırt 32 sz´ameset´eben a 3 helyi´ert´eke 101 = 10, mivel az jobbr´ola m´asodik poz´ıci´onszerepel (´es a helyi´ert´ekeket a nulladik hatv´anyt´olind´ıtjuk), ´ıgy ebben a p´eld´aban a 3 sz´amjegy ´ert´eke: 3 · 101 = 3 · 10 = 30. 1.2.2. p´elda. A t´ızes sz´amrendszerben fel´ırt 32 sz´ameset´eben a 2 helyi´ert´eke 100 = 1, mivel az jobbr´olaz els}opoz´ıci´onszerepel (´esa helyi´ert´ekeket a nulladik hatv´anyt´olind´ıtjuk), ´ıgyebben a p´eld´aban a 2 sz´amjegy ´ert´eke: 2 · 100 = 2 · 1 = 2. 1.3. Eg´esz sz´amok le´ır´asa Eg´eszsz´amokat ´altal´anos esetben az anan−1 : : : a1a0 alakban ´ırhatunk fel, ´es az ´ıgyfel´ırt sz´am ´ert´eke (A alap´usz´amrendszert felt´etelezve): n n−1 1 0 (an · A ) + (an−1 · A ) + ··· + (a1 · A ) + (a0 · A ) ami nem m´as,mint a le´ırt sz´amjegyek (az el}oz}oekben megismert m´odon kisz´amolt) ´ert´ekeinek ¨osszege. 2 1 0 1.3.1. p´elda. Trivi´alis p´elda: 405[10] = 4 · 10 + 0 · 10 + 5 · 10 = 400 + 5 2 1 0 1.3.2. p´elda. 405[8] = 4 · 8 + 0 · 8 + 5 · 8 = 256 + 5 = 261 6 5 4 3 2 1 0 1.3.3. p´elda. 1001101[2] = 1 · 2 + 0 · 2 + 0 · 2 + 1 · 2 + 1 · 2 + 0 · 2 + 1 · 2 = 64 + 8 + 4 + 1 = 77 1.3.4. p´elda. 0xA3 = 10 · 161 + 3 · 160 = 10 · 16 + 3 · 1 = 163 A negat´ıveg´esz sz´amokat ´ugy ´ırjuk le, hogy abszol´ut ´ert´ekuket¨ az el}oz}om´odonfel´ırjuk valamely sz´amrendszerben, majd el´e − jelet teszunk¨ (b´arezt a jel¨ol´est a t´ızes sz´amrendszeren k´ıvul¨ a gyakorlatban nem alkalmazzuk). 2 1.4. Nem eg´esz sz´amok le´ır´asa Az eg´esz sz´amokn´almegismert fel´ır´asim´odszert kiterjeszthetjuk¨ ´ugy, hogy a helyi´ert´ekek meg- ad´as´an´alnem ´allunk meg a nulladik hatv´anyn´al, hanem folytatjuk azt a negat´ıv hatv´anyokra is, ´ıgy lehet}os´egunk¨ ad´odik nem eg´esz sz´amok le´ır´as´ara. Altal´anos´ esetben teh´atennek alakja: anan−1 : : : a1a0a−1 : : : a−k, ´esaz ´ıgy fel´ırt sz´am´ert´eke (A alap´usz´amrendszert felt´etelezve): n n−1 1 0 −1 −k an · A + an−1 · A + ··· + a1 · A + a0 · A + a−1 · A + ··· + a−k · A Annak ´erdek´eben, hogy a mindk´et v´eg´en (eg´esz- illetve t¨ort r´esz) tetsz}olegesen b}ov´ıthet}ofel´ır´as egy´ertelm}ulegyen, ennek a k´etr´esznek a hat´ar´atjel¨oljuk¨ tizedesvessz}ovel. Mi a magyar he- lyes´ır´assal ellent´etben, a nem eg´esz sz´amokfelsorol´as´anakk¨onnyebb olvashat´os´aga´erdek´eben a tov´abbiakban a tizedespontos1 jel¨ol´est fogjuk alkalmazni. (Pl. 1,6, 2,4, 5,9 helyett 1:6; 2:4; 5:9) 2 1 0 −1 −2 1.4.1. p´elda. Trivi´alis p´elda: 405:23[10] = 4 · 10 + 0 · 10 + 5 · 10 + 2 · 10 + 3 · 10 = 1 1 4 · 100 + 5 · 1 + 2 · 10 + 3 · 100 2 1 0 −1 −2 1 1 1.4.2. p´elda. 405:23[8] = 4 · 8 + 0 · 8 + 5 · 8 + 2 · 8 + 3 · 8 = 4 · 64 + 5 · 1 + 2 · 8 + 3 · 82 = 2 3 19 256 + 5 + 8 + 64 = 261 64 = 261:296875 6 5 4 3 2 1 0 −1 −2 1.4.3. p´elda. 1001101:01[2] = 1·2 +0·2 +0·2 +1·2 +1·2 +0·2 +1·2 +0·2 +1·2 = 1 64 + 8 + 4 + 1 + 4 = 77:25 Negat´ıv nem eg´esz sz´amokle´ır´asaa negat´ıveg´esz sz´amok le´ır´as´ahoz hasonl´oana − jel sz´amel´e ´ır´as´aval t¨ort´enik (amit szint´en csak a t´ızes sz´amrendszer eset´eben haszn´alunk). 1.5. Atv´alt´as´ sz´amrendszerek k¨oz¨ott Az adott sz´amrendszerb}olt´ızes sz´amrendszerbe v´alt´astaz 1.3 ´es az 1.4 r´eszek p´eld´aiban hallgat´o- lagosan m´arbemutattuk. A ford´ıtott ´atv´alt´asra nem t´erunk¨ ki (a m´odszer k¨onnyen kital´alhat´o, l´asd 1.6.5. feladat). Az ´atv´alt´asnagym´ert´ekben egyszer}us¨odik, ha bin´arisb´olokt´alis vagy hexadecim´alis sz´am- rendszerbe kell ´atv´altani: egyszer}uen h´armas´aval (okt´alis esetben) vagy n´egyes´evel (hexadecim´a- lis esetben) kell a bin´aris sz´amjegyeket csoportos´ıtani, ´es az ´ıgy k´epzett csoportokat ´atv´altani: 1.5.1.