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
  1. denormalizujeme - doplníme jedničku k mantise

  2. srovnáme exponenty

  3. sečteme

  4. zpátky normalizujeme - opět odebereme jedna od mantisy