Operazioni MS e CA2
Salve , qualcuno potrebbe chiarirmi una cosa sul seguente esercizio :
A ) -10-15 fare l’operazione rappresentando i numeri su 5 bit in MS e CA2 verifica correttezza risultati.
Io ho preso i numeri e li ho convertiti in binario $10_10 = 01010_2$ e $15_10=01111_2$
MS
$-10_10 = 11010_(ms)$
$-15_10 = 11111_(ms)$
Sono negativi , ho gia considerato i segni (entrami i numeri iniziano con 1 negativo) quandi li sommo.
11010 +
11111=
---------
111001
Per esserci l’overflow dovrei avere i segni degli operandi uguali e il segno del risultato diverso.
In questo caso il segno del risultato non é negativo come quello degli operandi ? Qunidi non c’é overflow.. dato che ho 6 bit nel risultato non dovrei avere 1 bit di carry nell’ MSB ?
Il libro dice che c’è solo un overflow
CA2
Ho CA2(10)+CA2(5)
$10_10 = 01010_2 -> -10_10 = 10110_(CA2)$
$15_10=01111_2 -> -15_10 = 10001_(CA2)$
10110 +
10001=
---------
100111
Il libro dice che il segno del risultato non é concorde con quello degli addendi , quindi credo si
Riferisca al primo zero del risultato. Ma in questo caso il primo bit MSB , che vale uno cosa rappreenta? , un carrry ? da scartare ?
Grazie
Ben
A ) -10-15 fare l’operazione rappresentando i numeri su 5 bit in MS e CA2 verifica correttezza risultati.
Io ho preso i numeri e li ho convertiti in binario $10_10 = 01010_2$ e $15_10=01111_2$
MS
$-10_10 = 11010_(ms)$
$-15_10 = 11111_(ms)$
Sono negativi , ho gia considerato i segni (entrami i numeri iniziano con 1 negativo) quandi li sommo.
11010 +
11111=
---------
111001
Per esserci l’overflow dovrei avere i segni degli operandi uguali e il segno del risultato diverso.
In questo caso il segno del risultato non é negativo come quello degli operandi ? Qunidi non c’é overflow.. dato che ho 6 bit nel risultato non dovrei avere 1 bit di carry nell’ MSB ?
Il libro dice che c’è solo un overflow
CA2
Ho CA2(10)+CA2(5)
$10_10 = 01010_2 -> -10_10 = 10110_(CA2)$
$15_10=01111_2 -> -15_10 = 10001_(CA2)$
10110 +
10001=
---------
100111
Il libro dice che il segno del risultato non é concorde con quello degli addendi , quindi credo si
Riferisca al primo zero del risultato. Ma in questo caso il primo bit MSB , che vale uno cosa rappreenta? , un carrry ? da scartare ?
Grazie
Ben
Risposte
qualcuno puo' aiutarmi ?
"ben":
11010 +
11111=
---------
111001
Per esserci l’overflow dovrei avere i segni degli operandi uguali e il segno del risultato diverso.
In questo caso il segno del risultato non é negativo come quello degli operandi ? Qunidi non c’é overflow.. dato che ho 6 bit nel risultato non dovrei avere 1 bit di carry nell’ MSB ?
Il libro dice che c’è solo un overflow
La regola (nel caso di somma di numeri in MS) è che, se gli addendi sono concordi, hai overflow nel caso di carry-in sul bit di segno. In pratica se hai un riporto sopra il MSB dei due operandi (carry-out del penultimo bit).
Nel tuo caso
Carry-in sul MSB -----. : 1 1 1 1 1 1 0 1 0 + 1 1 1 1 1 = --------------- 1 1 0 0 1
10110 +
10001=
---------
100111
Il libro dice che il segno del risultato non é concorde con quello degli addendi , quindi credo si
Riferisca al primo zero del risultato. Ma in questo caso il primo bit MSB , che vale uno cosa rappreenta? , un carrry ? da scartare ?
E' il carry, lo scarti solo quando non c'è overflow.
Prova a guardare magari se l'eserciziario di Giampiero Gabodi può chiarirti meglio la faccenda.
grazie stan. avevo confuso un po le cose...
