Matematické Fórum

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

#1 23. 03. 2022 13:47

fmfiain
Příspěvky: 554
Reputace:   
 

Doplnkový kód pre binárnu sústavu

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

 

#2 23. 03. 2022 21:39

osman
Příspěvky: 86
Pozice: v.v.
Reputace:   
 

Re: Doplnkový kód pre binárnu sústavu

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


Hlavní je zápal, talent se dostaví!

Offline

 

#3 24. 03. 2022 20:10 — Editoval MichalAld (24. 03. 2022 20:13)

MichalAld
Moderátor
Příspěvky: 4172
Reputace:   111 
 

Re: Doplnkový kód pre binárnu sústavu

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

 

#4 27. 03. 2022 12:47

fmfiain
Příspěvky: 554
Reputace:   
 

Re: Doplnkový kód pre binárnu sústavu

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

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson