Condiție preliminară – Reprezentarea numerelor binare negative
complementul lui 1 al unui număr binar este un alt număr binar obținut prin comutarea tuturor biților din el, adică transformând bitul 0 la 1 și bitul 1 la 0. Exemple:
Let numbers be stored using 4 bits 1's complement of 7 (0111) is 8 (1000) 1's complement of 12 (1100) is 3 (0011)>
complementul lui 2 al unui număr binar se adaugă 1 la complementul 1 al numărului binar. Exemple:
Let numbers be stored using 4 bits 2's complement of 7 (0111) is 9 (1001) 2's complement of 12 (1100) is 4 (0100)>
Aceste reprezentări sunt folosite pentru numerele semnate.
The principala diferenta între complementul de 1′ s și complementul de 2′ este că complementul 1′ s are două reprezentări de 0 (zero) — 00000000, care este zero pozitiv (+0) și 11111111, care este zero negativ (-0); în timp ce în complementul de 2′ s, există o singură reprezentare pentru zero — 00000000 (0), deoarece dacă adăugăm 1 la 11111111 (-1), obținem 100000000, care are nouă biți. Deoarece sunt permisi doar opt biți, bitul din stânga este eliminat (sau depășit), lăsând 00000000 (-0) care este același cu zero pozitiv. Acesta este motivul pentru care se folosește în general complementul 2′.
O altă diferență este că, în timp ce adunăm numere folosind complementul de 1, mai întâi facem adunări binare, apoi adăugăm o valoare de transport finală. Dar, complementul 2′ s are o singură valoare pentru zero și nu necesită valori de transport.
Intervalul complementului 1 pentru un număr de n biți este de la -2n-1-1 la 2n-1-1 în timp ce intervalul complementului 2 pentru n biți este de la -2n-1la 2n-1-1.
converti un obiect java în json
Sunt 2n-1numere valide în complementul 1 și 2nnumere valide în complementul 2.
Diferența dintre reprezentarea Complementului 1 și reprezentarea Complementului 2 în formă tabelară:
| Criterii | Complementul lui 1 | Complementul 2 |
| Definiție | Complementul 1 al unui număr binar se obține prin inversarea tuturor biților acestuia. | Complementul 2 al unui număr binar se obține prin adăugarea lui 1 la complementul 1 al numărului. |
| Interval de valori care pot fi reprezentate cu n biți | De la -2^(n-1) + 1 la 2^(n-1) – 1 | De la -2^(n-1) la 2^(n-1) – 1 |
| Numărul de reprezentări pentru zero | Poate fi reprezentat în două moduri (toate 0-urile și toate 1-urile). | Poate fi reprezentat într-un singur mod (toate 0-urile). |
| Adunarea numerelor pozitive și negative | La fel ca și adăugarea binară fără semn. | La fel ca și adăugarea binară fără semn. |
| Scăderea numerelor | Scădeți numărul mai mic din cel mai mare, apoi adăugați un bit semn la rezultat. | Adăugați numărul negativ la cel pozitiv folosind adunarea binară. |