Základní principy počítačů I
Editovat
Note
|
Číselné soustavy, vztahy mezi číselnými soustavami, zobrazení čísel v počítači, principy provádění aritmetických operací. PB150/PB151 |
Číselné soustavy
Číselná soustava je způsob zápisu čísel.
- Nepoziční
-
Hodnota číslice nezávisí na jejím umístění v čísle. Jedničková souststava, římské číslice.
- Poziční (polyadické)
-
Hodnota číslice v čísle je . Celé číslo je součtem hodnot číslic:
Soustava | Báze | Číslice |
---|---|---|
Dvojková |
2 |
0, 1 |
Osmičková |
8 |
0, 1, 2, 3, 4, 5, 6, 7 |
Desítková |
10 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
Šestnáctková |
16 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f |
Vztahy mezi číselnými soustavami
— | Z dvojkové | Z osmičkové | Z desítkové | Z šestnáctkové |
---|---|---|---|---|
Na dvojkovou |
— |
Nahraď každou osmičkovou číslici 3 bity. |
Poděl dvojkou se zbytkem. Zbytky tvoří výsledek. První zbytek je nejnižší bit atd. |
Nahraď každou šestnáctkovou číslici 4 bity. |
Na osmičkovou |
Nahraď každé 3 bity odpovídající osmičkovou číslicí. |
— |
Poděl osmičkou se zbytkem. Zbytky tvoří výsledek. První zbytek je číslice nejnižšího řádu atd. |
Převeď do binární a následně do osmičkové. |
Na desítkovou |
— |
|||
Na šestnáctkovou |
Nahraď každé 4 bity odpovídající šestnáctkovou číslicí. |
Převeď do binární a následně do hexadecimální. |
Poděl 16 se zbytkem. Zbytky tvoří výsledek. První výsledek je číslice nejnižšího řádu atd. |
— |
Zobrazení čísel v počítači
- Bez znaménka
-
Sekvence bitů bez znaménka dokáže vyjádřit čísla .
- Přímý kód
-
Nejvyšší bit v sekvenci bitů značí znaménko. Má dvě nuly a špatně přetéká. Dokáže vyjádřit čísla .
- Inverzní kód
-
Záporné číslo lze získat inverzí čísla kladného. (Znaménkový bit má tím pádem taky.) Má dvě nuly a přetečení funguje. Dokáže vyjádřit čísla .
- Dvojkový doplňkový kód
-
Záporné číslo lze získat inverzí čísla kladného a přičtením 1. Má jen jednu nulu a přetečení funguje. Dokáže vyjádřit čísla .
- Binary Coded Decimal (BCD) kód
-
Binární zápis decimálních čísel. Využívá faktu, že to 4 bitů se vlezou číslice 0-9.
- Rozvinutý (unpacked) BCD kód
-
Co číslice to bajt.
9 1 8 4 6 F9
F1
F8
F4
C6
-9 1 8 4 6 F9
F1
F8
F4
D6
- Zhuštěný (packed) BCD kód
-
Co číslice to nibble (4 bity) kromě první číslice, která v horní části bajtu obsahuje znaménko.
9 1 8 4 6 9
1
8
4
C6
-9 1 8 4 6 9
1
8
4
D6
- Kód s posunutou nulou
-
Posouvá nulu o nějakou konstantu. Třeba pro 8-bitová čísla je možné považovat za a za .
Reálná čísla (IEEE 754)
IEEE 754 je formát zápisu čísel s desetinnou čárkou.
znaménko | exponent | mantissa |
---|---|---|
1 bit |
8 bitů |
23 bitů |
- Mantissa
-
Číslo v přímém kódu, ale číslice nejvyššího řádu je vlevo. Resp. číslice druhého nejvyššího řádu je vlevo, neboť číslice nejvyššího řádu je 1, a proto se vynechává.
- Exponent
-
Je v kódu s posunutou nulou. Nejnižší reprezentovatelný exponent je 1. 0 je rezervována pro denormalizované čísla.
- Normalizovaná čísla
-
Exponent není 0 ani 255. Mantissa udává desetinnou část za 1.
- Denormalizovaná čísla
-
Čísla okolo nuly, která nelze vyjádřit normalizovaně. Exponent je 0. Mantisa udává desetinnou část za 0.
- Nekonečno
-
Exponent je 255, mantissa je 0, znaménko udává, jestli jde o nebo .
- Not-a-Number (NaN)
-
Nečíselné hodnoty. Exponent je 255, mantissa a znaménko může být cokoliv.
- Příklad
-
Vnější kódy
Zobrazení mezi čísly a znaky. Každý znak má svoji ordinální hodnotu.
- Jednobajtová kódování
-
Lexikálně uspořadáné zobrazení mezi čísly z rozsahu a znaky. Nejstandardnější je 7-bitové ASCII pokrývající potřeby anglické abecedy.
Existuje řada 8-bitových rozšíření ASCII pro českou abecedu. Např. Windows-1250 a IS0 8859-2.
- Vícebajtová kódování
-
Znaky za hranicemi ASCII jsou vyjádřeny více bajty. Standardem je Unicode a jeho formát UTF-8.
Pořadí bajtů
Procesory a další zařízení se mohou lišit v pořadí bajtů v čísle. Např. pro hexadecimální číslo 4A 3B 2C 1D
.
- Little-endian
-
,,Little end first.''
Bajt nejnižšího řádu je na nižší adrese. Tedy pokud adresy stoupají zleva doprava, pak v paměti bude
1D 2C 3B 4A
. Používají procesory z rodiny Intel x86. - Big-endian
-
,,Big end first.''
Bajt nejvyššího řádu je na nižší adrese. Pokud adresy stoupají zleva doprava, pak v paměti bude
4A 3B 2C 1D
.
Principy provádění aritmetických operací
- Sčítání v inverzním kódu
-
U sčítání v inverzním kódu provádíme kruhový přenos. Přenos + nejvyšší řád přičteme k výsledku.
- Sčítání v dvojkovém doplňkovém kódu
-
Při sčítání se přenosy se znaménkového bitu ignorují. Přetečení nastává, pokud se nerovná přenos ze znaménkového bitu do znaménkového bitu.
Sčítání v IEEE 754
-
denormalizujeme - doplníme jedničku k mantise
-
srovnáme exponenty
-
sečteme
-
zpátky normalizujeme - opět odebereme jedna od mantisy