Reprezentări ale numerelor cu semn
Reprezentările numerelor cu semn sunt utilizate pentru a rezolva problema reprezentării numerelor întregi negative în binar. Problema pe care o ridică încercarea de a stoca semnul negativ (-) al unui număr binar este că nu mai există stări care să poată fi utilizate pentru a reprezenta atribuirea negativă. Nu este posibil să se folosească doar "oprit" pentru minus și "pornit" pentru plus, deoarece calculatorul nu ar avea cum să știe dacă este vorba de o cifră sau de un semn.
Pentru a depăși această problemă, proiectanții de computere au inventat două metode de stocare a numerelor binare negative: semnul și mărimea și complementul lui 2. Acestea produc reprezentări alternative pentru numerele cu semn.
Semne și magnitudini
Semn și mărime funcționează prin schimbarea bitului cel mai semnificativ (MSB - prima cifră) la 1 dacă numărul este negativ și reducerea numărului cu unu, de exemplu:
0000 0010 (2)
va deveni...
1000 0010 (-2)
Această metodă de stocare a numerelor binare negative nu funcționează deoarece:
- Aritmetica binară nu va funcționa.
- Trebuie să știm mai întâi ce mecanism de stocare folosește compilatorul unui anumit limbaj.
Complementul lui 1
Complementul lui 1 funcționează prin schimbarea lui 1 cu 0 și a lui 0 cu 1, de exemplu:
0000 0010 (2)
va deveni...
1111 1101 (-2)
La fel ca în cazul metodei semn și mărime, acesta este ușor de definit ca număr negativ, deoarece bitul său cel mai semnificativ este 1.
Complement de 2
Complementul lui 2 este o modalitate mai dificilă de stocare a negativelor. Există trei pași pentru aceasta:
- Găsiți numărul binar pozitiv (de exemplu, 8base 10 = 0000 1000base 2).
- Schimbați 1-urile cu 0-uri și 0-urile cu 1-uri (de exemplu, 0000 1000base 2 devine 1111 0111base 2).
Acest lucru este cunoscut sub numele de "răsturnarea biților", sau aplicarea logicii NOT la reprezentarea originală în baza 2.
- Adăugați 1 (de exemplu, 1111 0111baza 2 + 1baza 2 = 1111 1000baza 2).
Această metodă este apreciată deoarece:
- Este ca semnul și magnitudinea; un număr negativ începe cu 1, iar un număr pozitiv începe cu 0.
- Aritmetica binară va funcționa.
- Există o singură valoare pentru 0 (0000 0000baza 2).