Y36SAP Číselné soustavy a kódy, převody, aritmetické operace Tomáš Brabec, Miroslav Skrbek - X36SKD-cvičení. Úpravy pro SAP Hana Kubátová Osnova Poziční číselné soustavy a převody Dvojková soust., převod do desítkové Šestnáctková soust., převod do dvojkové Aritmetika () Sčítání Násobení Řádová mřížka Zobrazení záporných čísel Aritmetika (2) Odčítání Kubátová 27 Y36SAP-data 2
Literatura [] Pluháček, A., Projektování logiky počítačů, skripta, Praha, ČVUT, 2, ISBN 8--245-9 Kubátová 27 Y36SAP-data 3 Poziční číselné soustavy I Určeny bází (základem) z, z N a z 2 Soustava s bází z z-adická Nejčastěji používané soustavy: z = 2 z = z = 6 dvojková (binární) desítková (dekadická) šestnáctková (hexadecimální) Kubátová 27 Y36SAP-data 4 2
Poziční číselné soustavy II Zápis čísla v z-adické soustavě: A z řádová čárka = ( an an... a a, a a 2... a m ), n, m N z celá část zlomková část základ soustavy a i z-adická cifra (číslice) na pozici i a i hodnota číslice a i, a i < z i řád číslice (řádové místo, pozice), určuje její váhu v i = z i n nejvyšší řád s nenulovou číslicí -m nejnižší řád s nenulovou číslicí Hodnota čísla A z : A = v( A z ) = a v Kubátová 27 Y36SAP-data 5 n m i i n = a z m i i Dvojková soustava Základ (báze) soustavy z = 2 zápis čísla tvořen posloupností a Př. v i 2 4 2 3 2 2 2 2 2-2 -2 2-3, 2 v(a) = 2 4 +2++/2+/8 = 9,625 Toto je ekvivalentní zápis čísla A v desítkové soustavě. Určení hodnoty čísla převod do desítkové soust., tj. Dvojková Desítková Kubátová 27 Y36SAP-data 6 3
Desítková Dvojková (celá část) Postupným dělením celéčásti číslem 2 (tj. základem dvojkové soustavy) Př. Převeďte číslo 57 do dvojkové soustavy. 57 A 2 57 : 2 = 28 zbytek a 28 : 2 = 4 zbytek A 2 = 2 4 : 2 = 7 zbytek 7 : 2 = 3 zbytek 3 : 2 = zbytek : 2 = zbytek a 5 Pozn. Zápis čísla odpovídá posloupnosti zbytků brané v opačném pořadí. Kubátová 27 Y36SAP-data 7 Desítková Dvojková (zlomková část) Postupným násobením zlomkovéčásti číslem 2 (tj. základem dvojkové soustavy) Př. Převeďte číslo,65625 do dvojkové soustavy.,65625 A 2,65625 2 =, 325 a -,325 2 =, 625 A 2 =, 2,625 2 =, 25,25 2 =, 5,5 2 =, a -5 Kubátová 27 Y36SAP-data 8 4
Úloha: Převádějte mezi desítkovou a dvojkovou soustavou.., 2? 2. 2? 3., 2? 4. 47,5625? 2 5. 345,25? 2 Kubátová 27 Y36SAP-data 9 Řešení:., 2 29,75 2. 2 27 3., 2,39625 4. 47,5625, 2 5. 345,25, 2 Kubátová 27 Y36SAP-data 5
Důležité mocniny dvou n 2 3 4 5 6 7 2 n 2 2 2 2 2 3 2 4 2 5 2 6 2 7 Dec. 2 4 8 6 32 64 28 n 8 9 2 3 4 5 6 2 n 2 8 2 9 2 2 2 2 2 3 2 4 2 5 2 6 Dec. 256 52 24 2 48 4 96 8 92 6 384 32 768 65 536 n 2 3 32 4 - -2-3 -4 2 n 2 2 2 3 2 32 2 4 2-2 -2 2-3 2-4 Dec. M G 4 G T,5,25,25,625 Toto je důležité! Kubátová 27 Y36SAP-data Šestnáctková soustava Zápis čísla tvořen ciframi..9 a A..F Hex. 2 3 4 5 6 7 Dec. 2 3 4 5 6 7 Bin. Hex. 8 9 A B C D E F Dec. 8 9 2 3 4 5 Bin. Toto je nutné znát zpaměti! Kubátová 27 Y36SAP-data 2 6
Dvojková Šestnáctková Jsou to příbuzné soustavy, tj. z 6 = 6 = 2 4 = z 2 4 Jedna cifra v z 6 odpovídáčtyřem cifrám v z 2 Mezi zápisy v soustavách z 6 a z 2 je pouze formální rozdíl. Př. Převeďte čísla mezi příbuznými soustavami: a), 2 b) 734,5 6, 2 4 D, 5 8 6, 2 Kubátová 27 Y36SAP-data 3 Úloha: Převádějte mezi dvojkovou a šestnáctkovou soustavou.., 2? 6 2. 2? 6 3., 2? 6 4. 2A5F, 6? 2 5. F563D,8 6? 2 6.,98736 6? 2 Kubátová 27 Y36SAP-data 4 7
Řešení, 2 6B,5C 6. 2 75D4 6 2., 2,35C8 6 3. 2A5F, 6, 2 4. F563D,8 6, 2 5.,98736 6, 2 Kubátová 27 Y36SAP-data 5 Sčítání ve dvojkové soustavě Základem je součet dvou -ciferných čísel + Přenos do vyššího řádu. Př. Sečtěte čísla 2 a 2. + Přenos zřádu i se sčítá s ciframi v řádu (i+). Pozn. Součtem dvou N-ciferných čísel může vzniknout (N+)-ciferné číslo. Kubátová 27 Y36SAP-data 6 8
Úloha: Sčítejte ve dvojkové soustavě.. 2 + 2 =? 2 2. 2 + 2 =? 2 3. 2 + 2 =? 2 Kubátová 27 Y36SAP-data 7 Řešení:. 2 + 2 = 2 2. 2 + 2 = 2 3. 2 + 2 = 2 Kubátová 27 Y36SAP-data 8 9
Násobení ve dvojkové soustavě Základem je součin dvou -ciferných čísel Více-ciferné násobení se převádí na sčítání Př. Vynásobte čísla 2 a 2. Pozn. Součinem N- a M-ciferného čísla může vzniknout (N+M)-ciferné číslo. Kubátová 27 Y36SAP-data 9 ++ ( ) ( ) ( ) Úloha: Vynásobte ve dvojkové soustavě.. 2 2 =? 2 2. 2 2 =? 2 3. 2 2 =? 2 Kubátová 27 Y36SAP-data 2
Řešení:. 2 2 = 2 2. 2 2 = 2 3. 2 2 = 2 Kubátová 27 Y36SAP-data 2 Řádová mřížka Řádová mřížka určuje formát zobrazitelných čísel na počítači (tj. definuje nejvyššířád n a nejnižšířád - m) Př. řádová čárka n = 3, -m = n =, -m = -3 Základní vlastnosti: Délka ř.m. (l) počet řádů obsažených v ř.m. Jednotka ř.m. (ε) nejmenší číslo zobrazitelné v ř.m. Modul ř.m. (M) nejmenší číslo, které již v ř.m. zobrazitelné není Kubátová 27 Y36SAP-data 22
Určete vlastnosti ř.m. Určete vlastnosti následujících řádových mřížek (z = 2): a) b) c) obecně, tj. v závislosti na n a m: l = 8, M = 2, ε = (2-7 ) l = 8, M = (2 8 ), ε = l = 6, M = (2 3 ), ε = (2-3 ) l = n + m +, M = z n+, ε = z -m Kubátová 27 Y36SAP-data 23 Úloha: Zobrazte čísla v ř.m. Převeďte čísla do dvojkové soustavy a zapište je do ř.m. zadaných parametrů.. (-9) =? 2 n = 5, m = 2 2. (-7) =? 2 n = 7, m = 2 3. (-6C) 6 =? 2 n = 8, m = 2 4. (-) 6 =? 2 n = 4, m = 2 Kubátová 27 Y36SAP-data 24 2
Zobrazení záporných čísel (čísel se znaménkem) Standardní polyadické soustavy pouze nezáporná čísla Zobrazení záporných čísel číselné kódy popisují transformaci z omezené množiny celých čísel do omezené množiny nezáporných čísel Nejpoužívanější číselné kódy: přímý (znaménko a absolutní hodnota sign-magnitude) aditivní (s posunutou nulou biased) doplňkový (pro dvojkovou soustavu - 2 s complement) (inverzní) Kubátová 27 Y36SAP-data 25 Doplňkový kód Definice: D(X) = X, je-li X >= M + X, je-li X < Příklad napsat všechna 3 bitová čísla (M =, ε =, l = 3) Znaménko je určeno prvním bitem zleva, ale tento bit je organickou součástí obrazu!!! Kubátová 27 Y36SAP-data 26 3
Př. Obrazy čísel +5 a 5 (z = 2, M = 2, 6 ). D(5) = 5 = 2 + 2 Algoritmus určení obrazu záporného čísla (ve dvojkové soustavě):. Zapíšeme číslo X 2 do řádové mřížky. 2. Invertujeme všechny bity. 3. Přičteme jedničku. D(-5) = 6 + (- 5 ) = = 2-2 nejvyšší bit představuje znaménko D D Př. Obraz čísla 5 (z = 2, Z = 6). 5 = 2 +. zápis v ř.m. 2. inverze bitů 3. přičtení jedničky D(-5 ) Kubátová 27 Y36SAP-data 27 Odečítání ve dvojkové soustavě Odčítání přičítání opačného čísla Př. Určete rozdíl čísel 6 (ve dvojkové soustavě). Všimněte si volby ř.m. Oběčísla v ní musí být správně zobrazena! 6 = 2-6 = 2 + = 2 4 = 2 znaménko výsledku tento přenos ignorujeme (prozatím) Kubátová 27 Y36SAP-data 28 4
Úloha: Odečtěte ve dvojkové soustavě. Převeďte čísla do dvojkové soustavy (je-li to nutné) a spočítejte jejich rozdíl.. 6 - =? 2 2. 7-7 =? 2 3. 2-2 =? 2 4. F 6-3 6 =? 2 Kubátová 27 Y36SAP-data 29 Úloha: Odečtěte ve dvojkové soustavě. Převeďte čísla do dvojkové soustavy (je-li to nutné) a spočítejte jejich rozdíl.. 6 - = 2 2. 7-7 = 2 3. 2-2 = 2 4. F 6-3 6 = 2 Problémy: velikost řádové mřížky, určení a zobrazení správného výsledku, jestliže používáme nezáporná čísla Kubátová 27 Y36SAP-data 3 5
Odčítání pro nezáporná čísla pozorování na příkladu M=, ε=: Abychom dostali správný výsledek musíme mít možnost odečíst modul. Musí vyjít přenos!! Kubátová 27 Y36SAP-data 3 Doplňkový kód Definice: D (X) = X, je-li X >= M + X, je-li X < Příklad napsat všechna 3 bitová čísla (M =, ε =, l = 3) Znaménko je určeno prvním bitem zleva, ale tento bit je organickou součástí obrazu!!! Kubátová 27 Y36SAP-data 32 6
Doplňkový kód - pokračování Obraz záporného čísla X je doplňkem jeho hodnoty do modulu M řádové mřížky Př. -25 D 9 9 7 5 + 2 D +,5 D D 5 -, 2 Kubátová 27 Y36SAP-data 33 Sčítání a odčítání v doplňkovém kódu Sečtou se obrazy a ignoruje se přenos!!! Příklady viz tabule a cvičení Kubátová 27 Y36SAP-data 34 7
Přeplnění Přeplnění (overflow) není přenos (carry)!!!!! Kubátová 27 Y36SAP-data 35 Příklad pro 3 bitová nezáporná čísla (opakování): Odčítání V doplňkovém kódu: A B = A + (-B) D(B) + D(-B) = B + (-B) + M = M D(-B) = M - D(B) Správný výsledek musím mít možnost odečíst modul, Musí vyjít přenos!! D(-B) = D(B) + A B = D(A) + D(B) + detekce přeplnění je stejná jako u sčítání Kubátová 27 Y36SAP-data 36 8
Doplňkový kód pro desítkovou soustavu s complement Příklad 3 místná desítkováčísla M = znaménko je určeno první číslicí zleva: 4... + (kladnáčísla) 5 9... (zápornáčísla) Kubátová 27 Y36SAP-data 37 9