Aiuto differenza numeri binari in modulo e segno
Salve ragazzi potreste darmi una mano cortesemente con questo esercizio?
" Sono dati i seguenti numeri in modulo e segno A=111001 e B=001111.
Eseguire l’operazione C=A-B. "
Non riesco a capire come procedere
" Sono dati i seguenti numeri in modulo e segno A=111001 e B=001111.
Eseguire l’operazione C=A-B. "
Non riesco a capire come procedere

Risposte
Ma che numeri sono? Hai provato a convertirli?
E' un esercizio di un appello di esame, purtroppo la soluzione non c'è, potreste aiutarmi?
Il metodo più semplice è convertire quei numeri in decimale, fare la sottrazione e poi ricalcolare il numero in binario. Hai idea di come si faccia la conversione decimale-binario e viceversa? Se non hai idea di come farlo ti consiglio di metterti a studiare la teoria.
uhmm allora quindi io faccio:
A = -25
B = 15
quindi C dovrebbe essere: - 25 - 15 = - 40?
E' corretto?
A = -25
B = 15
quindi C dovrebbe essere: - 25 - 15 = - 40?
E' corretto?
A questo punto però lo devi convertire in binario.. Il problema è che non è possibile convertire questo numero in binario con quel numero di bit. Servirebbe un bit in più. La soluzione dipende in realtà quindi da come è definita la differenza. Ci sono in effetti modi diversi di implementare quella differenza e la soluzione dipenderà dall'algoritmo usato.
Come algoritmo usato cosa intendi? Un algoritmo ad esempio è: converto entrambi in complemento a 2 e poi faccio A+ complemento a 2 di B? oppure un altro è: inverto il bit del segno di B e poi sommo A+B?
Intendi queste cose?
Intendi queste cose?
Sì. Questo genere di cose. Cosa dice la teoria di overflow/underflow?
Uhm allora, l'overflow si può verificare solo se si sommano due numeri negativi o si sommano due numeri positivi ed il risultato non è rappresentabile dal numero di bit che si ha a disposizione.
Si verifica quindi un riporto sul segno che viene perciò invertito:
1) sommando due numeri negativi il segno diventa positivo
2) sommando due numeri positivi il segno diventa negativo
A questo punto però una volta individuato l'overflow non mi è chiaro come procedere...
Si verifica quindi un riporto sul segno che viene perciò invertito:
1) sommando due numeri negativi il segno diventa positivo
2) sommando due numeri positivi il segno diventa negativo
A questo punto però una volta individuato l'overflow non mi è chiaro come procedere...