Základné princípy zobrazovania informácií v počítači Roman Horváth, Pedagogická fakulta, Trnavská univerzita v Trnave. roman.horvath@truni.sk
Kódovanie Kód súbor znakov (vzorov) určených na zaznamenávanie informácií určitým spôsobom a pravidiel na ich používanie. Kódovanie proces, pri ktorom je každému znaku alebo postupnosti znakov daného súboru/množiny znakov (vzorov) jednoznačne priradený znak alebo postupnosť znakov (obrazov) z iného súboru/množiny znakov. V najjednoduchšom prípade premietame jednu množinu znakov do druhej množiny znakov. Každý vzor má svoj obraz!
(Šifrovanie) niekedy dochádza ku zámene pojmov kódovanie a šifrovanie, kódovanie má za cieľ prevod údajov do určitého tvaru, aby sa uľahčilo ich ukladanie alebo prenos, šifrovanie sa snaží o znečitateľnenie dokumentu pre toho, komu nie je určený ide o utajenie obsahu, na dešifrovanie zašifrovanej správy musíme poznať správne heslo či kľúč.
Číselné sústavy dekadická (decimálna/desiatková) sústava o číselná sústava, v ktorej počítame my ľudia, o pozičná číselná sústava, ktorá používa cifry nula (0) až deväť (9). binárna (dvojková) sústava o číselná sústava, v ktorej pracuje počítač, o pozičná číselná sústava, ktorá používa cifry nula (0) a jeden (1).
Číselné sústavy oktálová (osmičková) sústava o základ 8, cifry 0 7. hexadecimálna (šestnástková) sústava o základ 16, cifry 0 až 9 a A až F, ktoré suplujú chýbajúce znaky pre cifry 10 až 15.
Tabuľka pre porovnanie dec bin oct hex 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 dec bin oct hex 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F
Prevody medzi sústavami Všeobecný vzorec pre vyjadrenie čísla z ľubovoľnej číselnej sústavy: kde: M = a k N k + a k 1 N k 1 + + a 1 N 1 + a 0 M výsledná číselná hodnota (decimálne), k pozícia znaku (0 jednotky, 2 stovky ), a k k-ta cifra (hodnota znaku sústavy), N základ číselnej sústavy. Napr.: 128 10 = 1 10 2 + 2 10 1 + 8 10 0 = 100 + 20 + 8 = 128
Príklad: Vyjadrite číslo 5D 16 v desiatkovej sústave! (D = 13) 5 16 1 + 13 16 0 = 80 + 13 = 93
Prevody medzi sústavami Na prevod z desiatkovej sústavy do sústavy s iným základom môžeme použiť nasledovný algoritmus: o Nech N je základ inej číselnej sústavy! (Nedesiatkovej.) o (1) Načítaj číslo M! (desiatkovo) Skopíruj číslo M do O (na účely zálohy, ak treba) o (2) Vypočítaj čísla R, S nasledovne: R je celočíselný podiel O / N, S je zvyšok po celočíselnom delení O / N, S je cifra v číselnej sústave so základom N (zapamätaj si ju, poznač si ju niekde), R je teraz nové O. (Inak povedané: do O zapíš R.) Ak R (resp. O, momentálne je to jedno, pretože teraz sú obe rovnaké) je rôzne od nuly, zopakuj tento bod! o (3) Nakoniec prepíš všetky vypočítané cifry S v spätnom poradí!
Príklad: Preveďte číslo 13 10 do binárnej sústavy! O N R, S 13 div 2 = 6, zvyšok: 1 6 div 2 = 3, zvyšok: 0 3 div 2 = 1, zvyšok: 1 1 div 2 = 0, zvyšok: 1 Kontrola: 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = = 8 + 4 + 0 + 1 = 13 dostávame: 1101 2
Binárny kód (tiež dvojkový kód) (ale je rozdiel medzi dvojkovým kódom a dvojkovou sústavou ) kód, v ktorom súbor znakov cieľovej množiny zobrazenia pozostáva iba z dvoch znakov. o napríklad 0 a 1 (dvojková sústava), o bodka a čiarka (Morzeovka) Bit (Binary Digit) znak dvojkovej sústavy
Spájanie bitov do vyšších celkov Nibble 4 bity, Bajt 8 bitov, Word n bajtov (napr. dva), (Dword, Qword ) predpona SI Násobky bajtu nibble 0 1 0 0 1 0 1 1 (zdroj: http://sk.wikipedia.org/wiki/bajt) binárna predpona (IEC 60027-2) Meno Symbol Násobok Meno Symbol Násobok kilobajt kb 10 3 ( nesprávne aj 2 10 ) kibibajt KiB 2 10 megabajt MB 10 6 ( nesprávne aj 2 20 ) mebibajt MiB 2 20 gigabajt GB 10 9 ( nesprávne aj 2 30 ) gibibajt GiB 2 30 terabajt TB 10 12 ( nesprávne aj 2 40 ) tebibajt TiB 2 40 petabajt PB 10 15 ( nesprávne aj 2 50 ) pebibajt PiB 2 50 exabajt EB 10 18 ( nesprávne aj 2 60 ) exbibajt EiB 2 60 zettabajt ZB 10 21 ( nesprávne aj 2 70 ) zebibajt ZiB 2 70 yottabajt YB 10 24 ( nesprávne aj 2 80 ) yobibajt YiB 2 80
Primitívne údajové typy jazyka Java http://java.sun.co m/docs/books/ tutorial/java/ nutsandbolts/ datatypes.html Údajový typ Predvolené hodnoty byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char String (alebo iný objekt) boolean '\u0000' null false
Vnútorná reprezentácia celých čísel Primitívne údajové typy: o byte, short, int, long Objektové ekvivalenty v Jave: o Byte, Short, Integer, Long veľkosť Byte: 8 bitov (od -128 do 127), veľkosť Short: 16 bitov (od -32768 do 32767), veľkosť Integer: 32 bitov (od -2147483648 do 2147483647), veľkosť Long: 64 bitov (od -9223372036854775808 do 9223372036854775807).
Znamienko (priamy kód) Bajt (oktet) 8 bitov 2 8 256 (0 255) So znamienkom: o 0 127 1 128 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 znamienko znamienko
Priamy kód, inverzný kód, doplnkový kód Priamy kód: o absolútna časť zostáva nemenná: +36 10 = 00100100 2 36 10 = 10100100 2 Inverzný kód: o všetky bity absolútnej časti sú invertované: +36 10 = 00100100 2IK 36 10 = 11011011 2IK Doplnkový kód: o po prvú jednotku sprava (vrátane) ostávajú bity nemenné, ostatné sú invertované: +36 10 = 00100100 2DK 36 10 = 11011100 2DK
BCD kód # BCD Binary Coded Decimal (binárne kódované decimálne číslo) BCD 8 4 2 1 Excess-3 Stibitz Code BCD 2 4 2 1 Aiken Code BCD 8 4 2 1 IBM 702, IBM 705, IBM 7080, IBM 1401 8 4 2 1 ASCII 0000 8421 EBCDIC 0000 8421 0 0000 0011 0000 0000 1010 0011 0000 1111 0000 1 0001 0100 0001 0111 0001 0011 0001 1111 0001 2 0010 0101 0010 0110 0010 0011 0010 1111 0010 3 0011 0110 0011 0101 0011 0011 0011 1111 0011 4 0100 0111 0100 0100 0100 0011 0100 1111 0100 5 0101 1000 1011 1011 0101 0011 0101 1111 0101 6 0110 1001 1100 1010 0110 0011 0110 1111 0110 7 0111 1010 1101 1001 0111 0011 0111 1111 0111 8 1000 1011 1110 1000 1000 0011 1000 1111 1000 9 1001 1100 1111 1111 1001 0011 1001 1111 1001
Vnútorná reprezentácia čísel s pohyblivou rádovou čiarkou Primitívne údajové typy: o float, double Objektové ekvivalenty v Jave: o Float, Double veľkosť Float: 32 bitov (od 1.4E-45 do 3.4028235E38), veľkosť Double: 64 bitov (od 4.9E-324 do 1.7976931348623157E308).
Pevná a pohyblivá rádová čiarka Mantisa a exponent 0 1 0 0 1 0 1 1 znamienko desatinná časť znamienko (bias) znamienko? 0 0 1 1 1 0 0 1 0 exponent mantisa
Vnútorná reprezentácia znakov a reťazcov jestvujú tabuľky znakov, ktoré sú používané na konverziu z binárneho kódu na znaky (a späť), znak môže byť ekvivalentný jednému bajtu (ASCII), dvom a viacerým bajtom (Unicode), skupina znakov tvorí reťazec (ASCII alebo Unicode), reťazec môže mať svoju dĺžku uloženú oddelene alebo môže byť ukončený dohodnutým znakom či sériou znakov (nula, nový riadok ).
ASCII (American Standard Code for Information Interchange) dec hex glp dec hex glp dec hex glp dec hex glp dec hex glp dec hex glp dec hex bin dec hex glp 32 20 44 2c, 56 38 8 68 44 D 80 50 P 92 5c \ 104 68 h 116 74 t 33 21! 45 2d - 57 39 9 69 45 E 81 51 Q 93 5d ] 105 69 i 117 75 u 34 22 " 46 2e. 58 3a : 70 46 F 82 52 R 94 5e ^ 106 6a j 118 76 v 35 23 # 47 2f / 59 3b ; 71 47 G 83 53 S 95 5f _ 107 6b k 119 77 w 36 24 $ 48 30 0 60 3c < 72 48 H 84 54 T 96 60 ` 108 6c l 120 78 x 37 25 % 49 31 1 61 3d = 73 49 I 85 55 U 97 61 a 109 6d m 121 79 y 38 26 & 50 32 2 62 3e > 74 4a J 86 56 V 98 62 b 110 6e N 122 7a Z 39 27 ' 51 33 3 63 3f? 75 4b K 87 57 W 99 63 c 111 6f o 123 7b { 40 28 ( 52 34 4 64 40 @ 76 4c L 88 58 X 100 64 d 112 70 p 124 7c 41 29 ) 53 35 5 65 41 A 77 4d M 89 59 Y 101 65 e 113 71 q 125 7d } 42 2a * 54 36 6 66 42 B 78 4e N 90 5a Z 102 66 114 f 72 r 126 7e ~ 43 2b + 55 37 7 67 43 C 79 4f O 91 5b [ 103 67 g 115 73 s
Escape sekvencie dec hex escape name preklad 8 08 \b Backspace naspäť, krok vzad, vrátiť 9 09 \t Horizontal Tab horizontálny tabulátor 10 0A \n Line feed posun riadka (nový riadok) 12 0C \f Form feed posun formulára 13 0D \r Carriage return návrat vozíka (písacieho stroja) 34 22 \" Quotation mark úvodzovky 39 27 \' Apostrophe apostrof 92 5c \\ Backslash spätná lomka
Unicode medzinárodný štandard, ktorého cieľom je definovať kódovaciu schému schopnú reprezentovať väčšinu znakov používaných v písaných jazykoch spolu s inými symbolmi. Zdroje: o https://www.google.sk/search?q=definícia+unicode o http://sk.wikipedia.org/wiki/unicode o http://www.unicode.org/