Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý deň,
viem ako sa prevádza binárne číslo do doplnkového kódu na odčítavanie binárnych čísel:
Napríklad: Dekadické číslo (-37) sa prevedie do binárneho čísla (-100101), potom sa prepíše na inverzný kód (011010), číže prepíšem nuly na jednotky a jednotky na nuly. Ďalej k tomuto inverznému kódu pripočítame binárnu jednotku a je to hotové.
Ja by som potreboval inverzný postup, čiže previesť doplnkový kód na binárne číslo.
Bohužiaľ, ja nie som vedec. Moje závery sú občas mylné.
Ďakujem za odpoveď a ochotu.
Offline
Dobrý den, pro zápis čísla -37 do doplňkového kódu vám nestačí šestibitové kódování.
Doporučuji se podívat na
https://cs.wikipedia.org/wiki/Dvojkov%C … pln%C4%9Bk
Offline
Inverzní postup je zcela stejný.
Ale jak už napsal kolega přede mnou ... na doplňkový kód musíš mít dostatek bitů. Prostě musíš mít na levé straně aspoň jednu nulo (nebo více).
Takže -37 nejdřív zapíše jako 37, nepíše se tam to minus, takže né -100101, ale 100101, ale musíš mít dost bitů na to, abys měl na nejvyšším bitě nulu.
Takže aspoň 0100101, případně 00100101 atd...
Dál už to máš správně, zneguješ, tedy 1011010 nebo 11011010 a přičteš tu jedničku, takže máš 1011011 resp 11011011.
Ta jednička v nejvyšším bitě právě indikuje, že je to záporné číslo. No a zpátky...
zneguješ
0100100 či 00100100 a přičteš 1, takže 0100101 či 00100101.
Pro dvojkový doplněk je základem to, že máš předem daný omezený počet bitů. Bez toho to nejde dělat. Pokud máš tedy třeba 8 bitů, tak normálně bys měl čísla 0...255, při použití dvojkového doplňku můžeš používat jen -128 ... 127. Na větší čísla to nepůjde, v 8 bitech tedy nemůžeš převést třeba hodnotu 200 na záporné číslo. Protože tahle hodnota už vlastně záporné číslo reprezentuje.
Počítač to neví, ale ty jako programátor to vědět musíš, jestli těch 8 bitů představuje číslo v rozsahu 0...255, nebo -128...127. Při programování z toho vznikají dost nepříjemné problémy, když se pokoušíme sčítat nebo porovnávat znaménková čísla s neznaménkovými.
Offline
Dobrý deň ↑ MichalAld:,
takže ak som to správne pochopil pre prevod dvojkového na doplnok treba negovať číslo a pripočítať 1 a naspäť opäť negovať a pričítať jednotku.
Bohužiaľ, ja nie som vedec. Moje závery sú občas mylné.
Ďakujem za odpoveď a ochotu.
Offline