Algoritmy I Číselné soustavy přečíst!!!
Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické soustavě reprezentujeme číslo jako posloupnost číslic, které mají různé váhy, podle jejich pozice (tzv. poziční číselná soustava). 172=1*100+7*10+2*1 Obecný zápis čísla v desítkové poziční číselné soustavě a n a n-1 a 1 a 0 a -1 a -2. má hodnotu a n *10 n +a n-1 *10 n-1 +. +a 1 *10 1 +a 0 *10 0 +a -1 *10 n-1 +a -2 *10-2 +.. kde a i { 0,1,2,3,4,5,6,7,8,9}
Číselné soustavy Počítač je sestrojen z logických obvodů, které pracují pouze s hodnotami 0 a 1. Proto se používá dvojková (binární) soustava. (101) 2 = (1*4+0*2+1*1) 2 = 5 10 Obecný zápis čísla v binární poziční číselné soustavě a n a n-1 a 1 a 0 a -1 a -2. má hodnotu a n *2 n +a n-1 *2 n-1 +. +a 1 *2 1 +a 0 *2 0 +a -1 *2 n-1 +a -2 *2-2 +.. kde a i { 0,1}
Číselné soustavy 13 :2 6 1 3 0 1 1 0 1 0.625*2 1.25 0.5 1.0 13 10 = 1101 2 0.625 10 = 0.101 2 13.625 10 = 1101.101 2 1101 2 = (1*2 3 +1*2 2 +0*2 1 +1*2 0 ) 10 = 13 10
Číselné soustavy 0.1 10 = = 0*2 0 +0*2-1 +0*2-2 +0*2-3 +1*2-4 +1*2-5 +... = = 0.00011. 2 0.1*2 0.2 0.4 0.8 1.6 1.2 0.4
Číselné soustavy celá čísla Paměťová buňka se skládá z osmi bitů. Zápis hodnot do paměťové buňky rozmezí (00000000) 2 až (11111111) 2, 0 až 255. Tento způsob interpretace obsahu paměťové buňky ovšem neumožňuje zápis záporných celých čísel. Proto se používá ještě některých dalších způsobů. Přímý kód ukládá absolutní hodnotu čísla se znaménkovým bitem, který určí zda se jedná o číslo kladné nebo záporné.
Přímý kód 123 0 1111011-123 1 1111011 V tomto způsobu kódování dochází k dvojí reprezentaci nuly. 0 0 0000000-0 1 0000000
Doplňkový kód Číslo v doplňkovém kódu interpretujeme tak, že nejvyšší váha má zápornou hodnotu -(2 n ). V případě osmibitové reprezentace je tedy hodnota nejvyšší váhy -128. (1 0000000) 2 =(1*-2 7 +0*2 6 +...+0*2 0 ) 10 =(-128) 10 (1 0000001) 2 =(1*-2 7 +0*2 6 +...+0*2 1 +1*2 0 ) 10 =(-127) 10 (1 1111111) 2 =(1*-2 7 +1*2 6 +...+1*2 0 ) 10 =(-1) 10 (0 0000000) 2 =(0*-2 7 +0*2 6 +...+0*2 0 ) 10 =(0) 10 (0 0000001) 2 =(0*-2 7 +0*2 6 +...+0*2 1 +1*2 0 ) 10 =(1) 10 (0 1111111) 2 =(0*-2 7 +1*2 6 +...+1*2 0 ) 10 =(127) 10 https://cs.wikipedia.org/wiki/dvojkov%c3%bd_dopln%c4%9bk
Reálná čísla Vzhledem k tomu, že libovolný interval reálných čísel obsahuje nekonečný počet hodnot, není možné nalézt jednoznačné zobrazení mezi libovolným reálným intervalem a konečným počtem hodnot, který dává k dispozici kódování do n bitů. Do n bitů lze zakódovat nejvýše 2 n hodnot. Proto je i počet reálných čísel zakódovaných v n bitech maximálně 2 n. Reálná čísla jsou v počítači reprezentována vždy s určitou chybou. Tato chyba závisí na velikosti kódovaného intervalu reálných čísel, na počtu bitů do nichž reálné číslo kódujeme a na způsobu jakým kódování provádíme.
Pevná řádová čárka Při zobrazení čísla v pevné řádové čárce je číslo zakódováno do n bitů tak, že prvních m bitů odpovídá celé části a zbylých d bitů odpovídá zlomkové části. Takové kódování se pak ve zkratce označuje jako kódování m.d. Stejně jako u celých čísel lze použít přímý i doplňkový kód. Nejčastěji se ale používá doplňkový kód, aby bylo možné používat i záporná čísla. Příklad: V kódování 8.4 zapište číslo (13.625) 10. (13.625) 10 =(00001101.1010) 2 Při kódování s pevnou řádovou čárkou v doplňkovém kódu m.d je nejmenší zobrazitelné číslo -2 m-1 a největší zobrazitelné číslo 2 m-1-2 -d.
Pohyblivá řádová čárka Pro zobrazení velkých čísel bychom potřebovali neúměrné množství bitů. Například pro číslo 10 300 přibližně 1000 bitů. Navíc u tak velkých čísel lze obvykle pracovat s menší absolutní přesností (bity nižších řádů lze zanedbat). Obdobná situace je u čísel se zápornými exponenty. Proto se číslo s pohyblivou řádovou čárkou skládá ze dvou částí: mantisy a exponentu. Mantisa je číslo s pevnou řádovou čárkou a exponent celé číslo. Hodnota reálného čísla r s mantisou m a exponentem e se vypočte podle vzorce r=m*2 e. Dále viz: https://cs.wikipedia.org/wiki/pohybliv%c3%a1_%c5%99%c3 %A1dov%C3%A1_%C4%8D%C3%A1rka