Riporto nelle addizioni e sottrazioni di numeri binari.

Lois1
Salve a tutti. Per piacere, chi può aiutarmi a capire qual è la risposta a queste due domande?

1. Nell'addizione o sottrazione tra numeri binari in COMPLEMENTO A UNO, perchè il riporto finale (end-around carry) deve essere sommato al risultato ottenuto per avere il risultato finale?
2. Perchè nell'addizione o sottrazione tra numeri binari in COMPLEMENTO A DUE deve essere ignorato il riporto finale (carry-out)?
C'è una spiegazione matematica a entrambe le domande??

Grazie a chiunque risponderà.

Risposte
lorven
"Lois":
Salve a tutti. Per piacere, chi può aiutarmi a capire qual è la risposta a queste due domande?

1. Nell'addizione o sottrazione tra numeri binari in COMPLEMENTO A UNO, perchè il riporto finale (end-around carry) deve essere sommato al risultato ottenuto per avere il risultato finale?
2. Perchè nell'addizione o sottrazione tra numeri binari in COMPLEMENTO A DUE deve essere ignorato il riporto finale (carry-out)?
C'è una spiegazione matematica a entrambe le domande??

Grazie a chiunque risponderà.

Si calcoli a-b. Nella sottrazione in compl. a 2 su n bit, si somma al minuendo (a) il compl. a 2 del sottraendo (b), il quale compl. a 2 di b altro non è che $2^(n+1)-b$; il termine $2^(n+1)$, aggiunto prima, va naturalmente sottratto alla fine (il carry) per far quadrare i conti.

Analogamente, nella sottrazione in compl. a 1 su n bit, si somma al minuendo il compl. a 1 del sottraendo, ossia $(2^(n+1)-1)-b$; alla fine va naturalmente sottratto il carry e sommato 1.

Con un esempio: si calcoli 9-2.

sottrazione in c.a 2:
$1001-10=1001+(10000-10)-10000=1001+1110-10000=10111-10000=0111$

sottrazione in c.a 1:
$1001-10=1001+(1111-10)-1111=1001+1101-10000+1=10110-10000+1=0111$
:-)

Lois1
Quindi la potenza di due rappresenta in tutti e due i casi il carry? Perchè?

P.S. Credo che ci sia un errore nelle due formule : è 2^n e non 2^(n+1).

lorven
"Lois":
Quindi la potenza di due rappresenta in tutti e due i casi il carry? Perchè?

Perché sommando al minuendo il c. a 2 o a 1 del sottraendo si genera sempre un bit 1 eccedente a sinistra.

"Lois":
P.S. Credo che ci sia un errore nelle due formule : è 2^n e non 2^(n+1).

Vero, sorry :oops:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.