In che modo 0 ha due valori nel proprio complemento?


12

Si dice che nel complemento di 2 0 abbia un solo valore, mentre nel complemento di 1 sia +0 che -0 hanno valori separati. Quali sono?


8
0 non ha due valori. Ha il valore 0. Periodo. Quello che non hanno in complemento a 1 di è di due rappresentazioni . Ma non è davvero qualcosa di unico. Ad esempio, il numero 10 ha infinite rappresentazioni in decimale: 10, +10, 010, +010, 0010, +0010, ... e così via.
Jörg W Mittag,

Esattamente. I valori sono solo classi di equivalenza delle rappresentazioni e ciò che viene chiamato "il valore 0" sembra essere una classe di equivalenza contenente entrambi 000...0e 111...1. Ma queste due rappresentazioni costituiscono ancora un solo valore.
leftaroundabout

Risposte:


19

Nel complemento di 1 inverti semplicemente tutti i bit.

Considera questi 2 esempi (assumendo 8 bit):

  • , quindi - 4 = 111110114=000001004=11111011

  • , quindi - 0 = 11111111 .0=000000000=11111111

Quindi hai 2 modi per rappresentare il numero 0

Nel complemento di 2 aggiungi 1 alla rappresentazione del complemento di 1 del numero negativo

  • che nel complemento di 1 era 11111011 diventa 1111110041111101111111100
  • 01111111100000000

Quindi hai solo un modo per rappresentare lo 0 in questo caso

Come puoi vedere dagli esempi, la differenza è che:

  • 27+1271
  • 27271

7
Vale la pena ricordare che il complemento di 2 ha più vantaggi oltre a un solo numero in più nell'intervallo, anche se non si entra nei dettagli quali sono.
KRyan

7
Potresti anche menzionare uno di questi vantaggi in questa sezione di commento qui: uno dei maggiori vantaggi è la sottrazione (/ aggiunta di numeri negativi) che può essere implementata solo fingendo che i numeri non siano firmati e aggiungendoli. Non sono necessari casi speciali per la sottrazione = circuiti e logica molto più semplici. Questa pagina contiene una bella descrizione di questo argomento.
Jason C

3

00110


L'aggiunta o la sottrazione del complemento funziona con il trasporto end-around. Ovviamente, ciò che viene mostrato al programmatore non deve necessariamente essere la rappresentazione sottostante.
fino al

1
@ttw La domanda pone quali sono le due rappresentazioni di zero, quindi non sono sicuro di dove entrino addizione, sottrazione e programmatori.
David Richerby,

3

Parlare di due diversi valori di 0 nel proprio complemento è fuorviante. Il complemento di uno (e il complemento di due) sono rappresentazioni binarie di numeri. Descrivono un modo per rappresentare i numeri in binario e come eseguire operazioni aritmetiche su di essi. Il numero rappresentato dalla sequenza di bit è il valore.

000=00

00011

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.