Určete, jak se zobrazí následující čísla v přímém kódu i dvojkovém doplňku na osmi místech.
- 5310
- −10410
Napište, jaká čísla se zobrazila v přímém kódu, resp. dvojkovém doplňku.
- 011001102PK
- 110110012DD
Proveďte součet obou čísel v prvním i druhém příkladu ve dvojkovém doplňku.
Ve všech příkladech zapište postupy.
Tipy pro řešení
Pro řešení prostudujte předchozí studijní články. Vyzkoušejte si různé postupy, kde je to možné, abyste zjistili, který budete raději používat.
Návrh řešení
Návrh řešení si vždy prohlédněte až potom, co se pokusíte o nějaké vlastní.
5310 = ?2PK = ?2DD.
Číslo 53 10 se zobrazí v přímém kódu i ve dvojkovém doplňku jako 001101012PK (2DD), protože je kladné a tudíž zobrazené číslo je v obou kódech stejné.
- První bit bude 0, protože se jedná o kladné číslo.
- Provedete převod čísla 53 10 např. postupným dělením:
53 : 2 = 26 + zbytek 1
26 : 2 = 13 + zbytek
0
13 : 2 = 6 + zbytek
1
6 : 2 = 3 + zbytek
0
3 : 2 = 1 + zbytek
1
1 : 2 = 0 + zbytek
1
Po zpětném soupistu zbytků je tedy patrné, že číslo 53 10 = 1101012
- Aby bylo číslo na požadovaný počet 8 míst, doplníme mezi první bit a převedené číslo 0, která jeho hodnotu nemění. Tím získáme výsledek 001101012PK (2DD).
−10410 = ?2PK = ?2DD.
Číslo −104 10 se zobrazí v přímém kódu jako 111010002PK a ve dvojkovém doplňku jako 100110002DD. Jsou to tedy různé výsledky, protože jde o záporné číslo.
Zobrazení v přímém kódu lze odůvodnit takto:
- První bit bude 1, protože se jedná o záporné číslo.
- Dále převedete do dvojkové soustavy zadané číslo, jakoby bylo kladné (tedy 10410), což můžete učinit i metodou postupného odčítání:
27 > 104 ≥ 26; 104 − 1 × 26 = 40
26 > 40 ≥ 25; 40 − 1 × 25 = 8
2
5 > 8 < 24; 8 − 0 × 24 = 8
24 > 8 ≥ 23; 8 − 1 × 23 = 0
2
3 > 0 < 22; 0 − 0 × 22 = 0
2
2 > 0 < 21; 0 − 0 × 21 = 0
2
1 > 0 < 20; 0 − 0 × 20 = 0
Při soupisu tučně vyznačených multiplikativních koeficientů je patrné, že číslo 10410 = 11010002.
- Když připojíme znaménkový bit, vyjde nám, že číslo se zobrazí v přímém kódu na 8 míst jako 111010002PK.
Zobrazení ve dvojkovém doplňku lze odůvodnit takto:
- První bit bude 1, protože se jedná o záporné číslo.
- Pokud se rozhodnete pro technický převod, můžete využít předchozího zobrazení kladné verze čísla do přímého kódu na 8 míst a napsat, že 10410 = 011010002PK.
- Posléze přejdete od přímého kódu k invezrnímu kódu tím, že provedete negaci na jednotlivých místech čísla, čímž získáte 100101112IK
- K číslu v inverzním kódu nyní přičtete 12, čímž získáte potřebný výsledek.
přenosy: 111
100101112IK
+ 12
------------------
100110002DD
011001102PK = ?10.
V přímém kódu se zobrazilo číslo 10210 z desítkové soustavy. Přesvědčit se o tom lze v následujících krocích:
- Podle 0 na prvním místě je patrné, že půjde o číslo kladné.
- Odmyslíte si znaménkové místo a dosadíte do mocninné řady 11001102 = 1 × 26 + 1 × 25 + 1 × 22 + 1 × 21.
- Provedete součet mocninné řady 64 + 32 + 4 + 2 = 10210.
110110012DD = ?10.
Ve dvojkovém doplňku se zobrazilo číslo −3910 z desítkové soustavy. Přesvědčit se o tom můžete i v následujících krocích:
- Podle 1 na prvním místě je patrné, že půjde o číslo záporné.
- Můžete vzít číslo na všech osmi místech a provést převod do desítkové soustavy, jakoby na prvním místě znaménko nebylo. Dosadíte tedy do mocninné řady 110110012 = 1 × 27 + 1 × 26 + 1 × 24 + 1 × 23 + 1 × 20.
Provedete součet, čímž získáte číslo 21710.
- Využijete přechod přes kapacitu, která je dána tím, že číslo bylo zobrazeno na 8 míst. Tudíž provedete výpočet v desítkové soustavě 217 − 28 = −3910.
Součet prvních dvou čísel ve dvojkovém
doplňku.
Výsledkem součtu 001101012DD + 100110002DD je číslo 110011012DD.
Součet provedete takto:
přenosy: 11
001101012DD
+ 100110002DD
-----------------------
110011012DD
Zpětný převod (třeba přes kapacitu, když je podle prvního místa patrné, že jde o záporné číslo) si již vyzkoušejte sami (samozřejmě by mělo vyjít −5110).
Součet druhých dvou čísel ve dvojkovém
doplňku.
Výsledkem součtu 011001102DD + 110110012DD je číslo 001111112DD. Jistě jste se nenechali zmást, že jsme první číslo měli zadáno v přímém kódu, protože na základě znaménkového
místa víme, že jde o číslo kladné a tudíž je stejné i ve dvojkovém doplňku.
Součet provedete takto:
přenosy: 11
011001102DD
+ 110110012DD
-----------------------
1|001111112DD
Zpětný převod (třeba prostým dosazením do mocninné řady, když je podle prvního místa patrné, že jde o kladné číslo) si již vyzkoušejte sami (samozřejmě by mělo vyjít 6310).