Kódovanie
V predchádzajúcej téme sme sa mohli presvedčiť, že počas vývoja počítače pracovali s rôznymi kódmi, v desiatkovej, či dvojkovej sústave. Pri prenose a spracovávaní dát sa postupne ujali nasledujúce spôsoby kódovania: |
Morseho kód, ASCII kód, UNICODE, ...
Rímsky kód: Nepozičný zápis pomocou známych znakov I, V, X, L, C, D, M, pre prácu počítačových systémov nepoužiteľný.
Morseho kód: Pri prenose telegrafických správ sa používala "morseovka", ktorá pomocou najmenšieho počtu znakov s vysokou presnosťou zakódovala správu. (napr. a: . _ s: . . . o: _ _ _) Telegraf pracoval s 5-stopou páskou - v podstate 5-bitový kód, ktorým sa dalo zakódovať 25-1=31 znakov a medzeru
ASCII kód: (American Standard Code for Information Interchange) 5-bitový kód je rozšírený na 7-bitový, ktorým sa 27=128 znakov. Neskôr je 7-bitová tabuľka rozšírená na 8 bitov (IBM rozšírenie)
Rozsah | Znaky |
0 - 31 | z historických dôvodov ponechané napr. 13 - Enter, 7 - Bell, 32 - medzera |
33 - 64 | znaky, číslice (napr. 64 - @) |
65 - 127 | A - Z, a - z, Del |
128 - 255 | znaky národných abecied |
UNICODE: Pre zakódovanie všetkých abecied sveta (aj arabských, čínskych, japonských znakov) bol zostavený 16 - bitový kód, ktorým možno zakódovať 216=65536 znakov.
BCD kód: (Binary Coded Decinaty) Pri kódovaní číslic 0 - 9 je ASCII kód zbytočným plytvaním. BCD kód je len 4-bitový kód pre zakódovanie číslic (napr. 0: 0000, 1: 0001, ..., 9: 1001).
|
Pozičný zápis čísel, matematické operácie
Pre prácu s číslami počítačové systémy využívajú pozičný zápis - hodnota čísla závisí od pozície (rádu) cifry. Používané sú: BINÁRNA - dvojková, OKTÁNOVÁ - osmičková a HEXADECIMÁLNA - šestnástková sústava.
Ak z je základom sústavy a M je množina dovolených cifier, potom platí:
Sústava | z - základ sústavy | M - množina cifier |
Binárna | 2 | {0,1} |
Oktánová | 8 | {0,1,2,3,4,5,6,7} |
Hexadecimálna | 16 | {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} |
Prevody medzi sústavami: Pri prevode celých čísel z jednej do druhej pozičnej sústavy sa používajú algoritmy "postupným delením" a "postupným odčítaním". Pri prevode desatinných čísel z jednej do druhej pozičnej sústavy sa používajú algoritmy "postupným násobením" a "postupným odčítaním". Pri prevodoch spomínaných sústav využívame vzťahy medzi ich základmi - 8=23 resp. 16=24, ak združíme cifry binárneho čísla do trojíc resp. štvoríc a tie vyjadrime v desiatkovej sústave, vznikne číslo v osmičkovej, resp. šestnástkovej sústave.
Matematické operácie v binárnej sústave, aritmetika s konečnou platnosťou: Keďže pri násobení binárnych čísel využívame posun cifier do ľava a pri delení posun do prava, dajú sa previesť tieto operácie na sčítanie a odčítanie s posunom cifier. Keďže počítač napĺňa registre s istým počtom miest pre binárne cifry, je nutné si uvedomiť, že súčtom dvoch veľkých čísel môže dojsť k pretečeniu registra (najvyššia cifra sa do registra nevmestí). Výsledné číslo predstavuje číslo bez prvej cifry, koré nie je súčtom pôvodných binárnych čísel. Preto hovoríme, že počítač pracuje v aritmetike s konečnou platnosťou. Pri prekročení hraníc pracovného intervalu spôsobí výnimku a zahlási chybové hlásenie. Pretečenie sa zaznamenáva v príznakovom (flag) registri procesora (pozri pracovné registre procesora).
Priamy kód, inverzný kód, doplnkový BC kód: Pre zjednodušenie matematických operácií a prevedenie odčítania na operáciu sčítania sa používa niekoľko jednoduchých kódovaní. Priamy kód získame priamym prevodom čísla do binárnej sústavy. Inverzný kód dostaneme z priameho kódu výmenou jednotiek za nuly a núl za jednotky (negácia každého bitu). Doplnkový kód (BC kód - binary complement) získame pripočitaním jednotky k inverznému kódu. Inverzia a doplnok sa využíva pri kódovaní záporných čísel (Odčítať číslo znamená pripočítať číslo opačné). Pomocou týchto kódov vieme všetky operácie (+,-,*,/) previesť na sčítanie. Súčasťou aritmeticko-logickej jednotky procesora je paralelná sčítačka a posunovač (shifter), ktoré spolu zabezpečujú vykonanie všetkých matematických a logických oprácií, ale o tom sa ešte konkrétnejšie zmienime v nasledujúcich kapitolách.
|
Kódovanie reálnych čísel
Kódovanie celých čisel: Celé čísla sú kódované priamym kódom, pričom prvý bit predstavuje znamienko (0 - kladné čísla, 1 - záporné čísla). Z počtu zvyšných miest (bitov) pre cifry v binárnej sústave vyplývajú aj hranice intervalu, v ktorom počítač počíta a dáva správny výsledok.
Desatinné čísla s pevnou desatinnou čiarkou: pevný počet miest pre cifry pred a za desatinnou čiarkou. Ak sa desatinné číslo uchováva napr. na 2 Byte = 16 bitov, prvý bit je znamienkový, ďalších 10 bitov predstavuje cifry pred des. čiarkou, zvyšných 5 cifier predstavuje desatinnú časť. Nevýhoda takéhoto uchovávania des. čísel sa prejaví hlavne u malých čísel (len s desatinnou časťou, alebo veľkých čísel (bez desatinnej časti). Preto sa používa pohyblivá des. čiarka.
Desatinné čísla s pohyblivou desatinnou čiarkou: každé desatinné číslo môžeme vyjadriť pomocou mantisy, základu a exponentu, pričom mantisa aj exponent majú svoje znamienko. To isté číslo môžeme zapísať s rôznym počtom des. miest. (napr. číslo 101,001 môžeme zapísať aj ako 10,1001.21, alebo 10100,1.2-2, alebo 1,01001.22) Vyberieme ten zápis, v ktorom je desatinná čiarka umiestnená za prvou významnou číslicou, čo je v prípade binárnych čísel vždy jednotka. (floating point - norma IEEE)
Single: 4B typ - 32 bitov, presnosť - 7-8 des. miest.
1 bit - znamienko čísla | 8 bitov - exponent (z toho 1 bit znamienko exponentu) | 23 bitov - mantisa (časť desatinného čísla za des. čiarkou) |
Real: 6B typ - 48 bitov, presnosť - 11-12 des. miest.
1 bit - znamienko čísla | 8 bitov - exponent (z toho 1 bit znamienko exponentu) | 39 bitov - mantisa (časť desatinného čísla za des. čiarkou) |
Double: 8B typ - 64 bitov, presnosť - 15-16 des. miest.
1 bit - znamienko čísla | 11 bitov - exponent (z toho 1 bit znamienko exponentu) | 52 bitov - mantisa (časť desatinného čísla za des. čiarkou) |
Extended: 10B typ - 80 bitov presnosť - 19-20 des. miest.
1 bit - znamienko čísla | 16 bitov - exponent (z toho 1 bit znamienko exponentu) | 55 bitov - mantisa (časť desatinného čísla za des. čiarkou) |
|
Linky na zhodné a príbuzné témy
© RNDr. Jana Machová
|