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:
- Najděte kladné binární číslo (např. 8base 10 = 0000 1000base 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.
- 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).