Prerequisito – Rappresentazione dei Numeri Binari Negativi
complemento di 1 di un numero binario è un altro numero binario ottenuto alternando tutti i bit in esso contenuti, ovvero trasformando il bit 0 in 1 e il bit 1 in 0. Esempi:
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)>
complemento a 2 di un numero binario è 1 aggiunto al complemento a 1 del numero binario. Esempi:
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)>
Queste rappresentazioni vengono utilizzate per i numeri con segno.
IL differenza principale tra il complemento 1 e Complemento a 2 è che il complemento a 1 ha due rappresentazioni di 0 (zero) — 00000000, che è zero positivo (+0), e 11111111, che è zero negativo (-0); mentre nel complemento a 2 c'è solo una rappresentazione per lo zero: 00000000 (0) perché se aggiungiamo 1 a 11111111 (-1), otteniamo 100000000, che è lungo nove bit. Poiché sono consentiti solo otto bit, il bit più a sinistra viene scartato (o va in overflow), lasciando 00000000 (-0) che equivale a zero positivo. Questo è il motivo per cui viene generalmente utilizzato il complemento a 2.
Un'altra differenza è che quando aggiungiamo numeri utilizzando il complemento a 1, prima eseguiamo l'addizione binaria, quindi aggiungiamo un valore di riporto finale. Ma il complemento a 2 ha un solo valore per zero e non richiede valori di riporto.
L'intervallo del complemento a 1 per il numero di n bit è compreso tra -2n-1-1 a 2n-1-1 mentre l'intervallo del complemento a 2 per n bit è compreso tra -2n-1a 2n-1-1.
convertire un oggetto Java in json
Ce ne sono 2n-1numeri validi nel complemento a 1 e 2Nnumeri validi nel complemento a 2.
Differenza tra la rappresentazione del Complemento a 1 e la rappresentazione del Complemento a 2 in forma tabellare:
| Criteri | Complemento a 1 | Complemento a 2 |
| Definizione | Il complemento a 1 di un numero binario si ottiene invertendo tutti i suoi bit. | Il complemento a 2 di un numero binario si ottiene aggiungendo 1 al complemento a 1 del numero. |
| Intervallo di valori che può essere rappresentato con n bit | Da -2^(n-1) + 1 a 2^(n-1) – 1 | Da -2^(n-1) a 2^(n-1) – 1 |
| Numero di rappresentazioni per zero | Può essere rappresentato in due modi (tutti 0 e tutti 1). | Può essere rappresentato in un solo modo (tutti 0). |
| Somma di numeri positivi e negativi | Uguale all'addizione binaria senza segno. | Uguale all'addizione binaria senza segno. |
| Sottrazione di numeri | Sottrai il numero più piccolo da quello più grande, quindi aggiungi un bit di segno al risultato. | Aggiungi il numero negativo a quello positivo usando l'addizione binaria. |