Reprezentace čísel se znaménkem

Reprezentace čísel se znaménkem se používá k řešení problému reprezentace záporných celých čísel ve dvojkové soustavě. Problém při pokusu o uložení záporného znaménka (-) binárního čísla spočívá v tom, že již neexistují žádné stavy, které by bylo možné použít k reprezentaci záporného přiřazení. Není možné prostě použít "vypnuto" pro mínus a "zapnuto" pro plus, protože počítač by neměl možnost poznat, zda se jedná o číslici nebo znaménko.

Aby tento problém překonali, vynalezli konstruktéři počítačů dvě metody ukládání záporných binárních čísel: znak a velikost a doplněk dvojky. Ty vytvářejí alternativní reprezentaci pro čísla se znaménkem.

 

Znaménko a velikost

Funkce Sign and Magnitude funguje tak, že se změní nejvýznamnější bit (MSB - první číslice) na 1, pokud je číslo záporné, a číslo se sníží například o jedničku:

0000 0010 (2)

se stane...

1000 0010 (-2)

Tento způsob ukládání záporných binárních čísel nefunguje, protože:

  • Binární aritmetika nebude fungovat.
  • Nejprve musíme vědět, jaký mechanismus ukládání používá překladač daného jazyka.
 

Doplněk 1

Doplněk 1 funguje tak, že se například vymění jedničky za nuly a nuly za jedničky:

0000 0010 (2)

se stane...

1111 1101 (-2)

Stejně jako metoda znaménka a velikosti je toto číslo snadno definováno jako záporné, protože jeho nejvýznamnější bit je 1.

 

Doplněk 2

Doplněk 2 je obtížnější způsob ukládání záporů. Jsou pro něj určeny tři kroky:

  1. Najděte kladné binární číslo (např. 8base 10 = 0000 1000base 2).
  2. Vyměňte jedničky za nuly a nuly za jedničky (např. z 0000 1000base 2 se stane 1111 0111base 2).

Tomuto postupu se říká "převrácení bitů" neboli použití logického NOT na původní reprezentaci báze 2.

  1. Přidejte 1 (např. 1111 0111base 2 + 1base 2 = 1111 1000base 2).

Tato metoda je oblíbená, protože:

  • Je to jako se znaménkem a velikostí; záporné číslo začíná jedničkou a kladné číslo začíná nulou.
  • Binární aritmetika bude fungovat.
  • Pro 0 existuje pouze jedna hodnota (0000 0000base 2).
 

AlegsaOnline.com - 2020 / 2023 - License CC3