Základy ukládání dat v počítači
Základní rozdělení: Program (strojové instrukce) řídí manipulaci s daty Data (objekt zpracování pomocí instrukcí)
Zobrazení znaků: každý počítač má svoji znakovou sadu ; nejpoužívanější jsou tyto 2 sady: EBCDIC ( Extended Binary Coded Decimal Interchange Code ) - používaná u mainframů od firmy IBM ASC II ( American Standard Code Information Interchange) V praxi se používá nejčastěji , má setříděna nejen čísla,ale i abecední znaky.
V praxi se nejčastěji užívá kód ASCII V praxi se nejčastěji užívá kód ASCII . Základní ASCII kód je na 7 bitech (dolní polovina kódové tabulky). Vyšší polovina tabulky je vyhrazena pro národní znaky jednotlivých abeced a různé symboly. V Česku jsou 3 základní kódové tabulky lišící se právě horní polovinou ASCII: Kód Kamenických Latin 2 (mezinárodně užívaný MS,IBM apod.) KOI-8 (pozůstatek norem RVHP)
Platí , že 1 znak = 1 byte. U dvouznakových konstant může být v paměti uložen obráceně ‘AB’ jako B A Znaky: - zobrazitelné - tzv. „white spaces“ – neviditelné ( některé mají i svou grafickou podobu a mají svůj specifický význam – tzv.řídící znaky) Tyto řídící znaky jsou někdy i závislé na konkrétním systému.
Neviditelné řídící znaky: Bell,BS,TAB,CR,LF,FF
Zobrazení řetězců: Jsou v paměti uloženy po znacích od nižších adres k vyšším. Někdy bývají řetězce ukončeny znakem NUL – tj bytem s hexadecimální hodnotou 00H (ASCIZ). U vyšších programovacích jazyků je to věcí překladače, u Assemblerů je to věcí programátora. Př.: ‘A’ ‘H’ ‘O’ ‘J’ 00H
Dekadická čísla rozložený tvar (ukládají se po znacích), jedna číslice = 1 byte (vysoká redundance – nepoužívá se) spakovaný tvar dvě číslice = 1 byte BCD (Binary Coded Decimal) (občas se používá při hromadném zpracování dat) Výhody: jednoduchost konverzí volitelný rozsah čísla Nevýhody: velká redundance obtížné operace pomalost
Celá čísla v pevné řádové čárce Používají se pro aritmetiku celých čísel (nejčastěji používané u SJ). Číslo je převedeno do binární podoby. Znaménkový bit zpravidla nelevější, ostatní bity jsou významové. Podle zobrazení záporného čísla se dělí na: Kód přímý: +1 … 0 0 0 0 0 0 0 1 -1 … 1 0 0 0 0 0 0 1 Výhody: snadno záporné číslo, snadno se hardwarově násobí. Nevýhody: obtížné sčítání a odčítání 2 nuly: 0 0 0 0 0 0 0 0 a 1 0 0 0 0 0 0 0
Kód inverzní (jedničkový doplněk) kladná čísla jsou jako u kódu přímého Ze každému kladnému existuje záporné číslo, které je jeho inverzní doplněk +1 … 0 0 0 0 0 0 0 1 -1 … 1 1 1 1 1 1 1 0 Nevýhoda: má opět 2 nuly 0 0 0 0 0 0 0 0 a 1 1 1 1 1 1 1 1 Používá se pouze pro přechod k doplňkovému kódu
Kód doplňkový (inverzní + 1) kladná čísla jsou jako u kódu přímého Záporné číslo: +1 … 0 0 0 0 0 0 0 1 -1 … 1 1 1 1 1 1 1 0 + 0 0 0 0 0 0 0 1 -1 … 1 1 1 1 1 1 1 1 Nejvíce používaný kód u mikropočítačů. Zmizely 2 nuly , zvětšil se rozsah tj. na 8-mi bitech (-128,127) Jednoduché aritmetické operace na bázi sčítání
Kód s posunutou nulou Nule je definována do středu rozsahu Co je napravo od této nuly – je kladné Co je nalevo od této nuly – je záporné Výhody: - normální obraz na číselné ose: záporná – nula – kladná - nejmenší záporné číslo je skutečně nejmenší Nevýhody: kladná čísla se nepodobají bezznaménkovým číslům 0 v MSB = záporné číslo a 1 kladné Použití: kódování exponentu u reálných čísel
reálná čísla v pevné řádové čárce číslo < 1 … řádová čárka je umístěna zcela vlevo číslo > 1 … řádová čárka je umístěna zcela vpravo reálná čísla v pohyblivé řádové čárce formát IEEE: (jednoduchá přesnost:4 byty)
(čísla v paměti jsou uložena opačně)