Chiarimenti su complemento a due e sottrazione in binario

Gianni911
Ragazzi scusate vorrei dei chiarimenti su queste due cose:
1)Non mi torna l'intervallo di rappresentabilita del complemento a due.Se rispetto al modulo e segno ( $ -(2^(N-1)-1)< x <(2^(N-1)-1) $ ),ho una sola rappresentazione dello 0(quella positiva),dovrei perdere un valore nei negativi quindi la rappresentazione non dovrebbe essere cosi...
$ -(2^(N-1)-1)< x <(2^(N-1)) $ ?? --->non capisco xché é il contrario??

2)La differenza tra due numeri binari..
10011-
01111=
--------
0100 cosi viene??
Io ho come risultato 100 senza lo zero finale xchè??Va bene che è zero,ma se la rappresentazione é su 5 bit...

Grazie mille :D

Risposte
Shocker1
Prima domanda:
che io sappia nel complemendo a due se il numero binario è positivo, si fa come nel modulo e segno
Per la seconda domanda a me esce 00100

ciao :)

Gianni911
"Shocker":
Prima domanda:
che io sappia nel complemendo a due se il numero binario è positivo, si fa come nel modulo e segno

Si hai ragione,ma non ho chiesto questo..
"Shocker":

Per la seconda domanda a me esce 00100

ciao :)

si si ,ho sbagliato a scrivere,cmq nel risultato mette 100 e non so se sia la stessa cosa..

hamming_burst
"Gianni91":
Ragazzi scusate vorrei dei chiarimenti su queste due cose:
1)Non mi torna l'intervallo di rappresentabilita del complemento a due.Se rispetto al modulo e segno ( $ -(2^(N-1)-1)< x <(2^(N-1)-1) $ ),ho una sola rappresentazione dello 0(quella positiva),dovrei perdere un valore nei negativi quindi la rappresentazione non dovrebbe essere cosi...
$ -(2^(N-1)-1)< x <(2^(N-1)) $ ?? --->non capisco xché é il contrario??

scusa, ma mi sembra che ti sei già risposto da solo, solo che hai sbagliato in un punto:
ho una sola rappresentazione dello 0(quella positiva)

dovrei perdere un valore nei negativi quindi la rappresentazione non dovrebbe essere cosi...

In questo senso, perdi sì un valore negativo, su 5 bit cioè $10000$, ma ne aggiungi un valore negativo che rappresenta un altro numero nel range.
cioè:
$ -(2^(N-1))< x <(2^(N-1)-1) $
se non ti è chiaro ti consiglio di guardare la rappresentazione binaria con il valore decimale in questa tabella a sinistra.


2)La differenza tra due numeri binari..
10011-
01111=
--------
0100 cosi viene??
Io ho come risultato 100 senza lo zero finale xchè??Va bene che è zero,ma se la rappresentazione é su 5 bit...

Grazie mille :D


sottrazione in che rappresentazione?

Gianni911
"hamming_burst":

se non ti è chiaro ti consiglio di guardare la rappresentazione binaria con il valore decimale in questa tabella a sinistra.

scusami intendi quella a destra con la striscia blu?? A sinistra non trovo niente.. :|

"hamming_burst":

sottrazione in che rappresentazione?

Non so ,la sottrazione mi serviva,per il calcolo dell'esponente in virgola mobile data dalla formula
$ e=E-(2^(k-1)-1) $ con E=5 bit..
$ e=E-(2^(k-1)-1)=10011-(+01111)=+100 $
probabilmenente c'è qualcosa che non ho capito.. :(

Quinzio
"Gianni91":

2)La differenza tra due numeri binari..
10011-
01111=
--------
0100 cosi viene??
Io ho come risultato 100 senza lo zero finale xchè??Va bene che è zero,ma se la rappresentazione é su 5 bit...

Grazie mille :D


Lo zero finale è quello a sinistra ?
Se così, è chiaro che lo puoi omettere. E' come nei decimali, scrivere 07022 e 7022 è la stessa cosa.

Gianni911
"Quinzio":

Lo zero finale è quello a sinistra ?
Se così, è chiaro che lo puoi omettere. E' come nei decimali, scrivere 07022 e 7022 è la stessa cosa.

Si sicuramente essendo 0,ma quello che volevo capire era che se la sottrazione é tra due numeri a 5 bit,il risultato sarà sempre su 5 bit..giusto??
Se ho,invece una sottrazione tra un numero su 5bit e uno a 3,il risultato che ottengo sara su 5 bit??

hamming_burst
"Gianni91":

Si sicuramente essendo 0,ma quello che volevo capire era che se la sottrazione é tra due numeri a 5 bit,il risultato sarà sempre su 5 bit..giusto??

in questo caso ci può essere underflow...

In complemento a 2 c'è una semplice regoletta che puoi ricordarti, essendoci solo la somma:
- 1.... + 0.... = 10.... carryout non c'è overflow
- 1.... + 1.... = 10.... underflow
- 0.... + 0.... = 11.... overflow

c'era una tabellina ma non la ritrovo più...
In modulo e segno il principio è uguale ricordandoti che 001 + 100 = 01 - 00

Se ho,invece una sottrazione tra un numero su 5bit e uno a 3,il risultato che ottengo sara su 5 bit??

discorso identico di sopra.
se su 5 bit hai un numero negativo e sottrai un altro numero positivo hai un underflow.

se hai ancora dubbi chiedi pure :-)

PS: per le operazioni FP controlla nei vecchi post in questa sezione ricordo di aver risposto a delle domande simili :-)

Gianni911
Scusami a lezione abbiamo solo trattato l'overflow,quindi potresti spiegarmi in cosa consististe l'underflow,nelle operazioni in binario??
Grazie
XD

hamming_burst
"Gianni91":
Scusami a lezione abbiamo solo trattato l'overflow,quindi potresti spiegarmi in cosa consististe l'underflow,nelle operazioni in binario??
Grazie
XD


sì, io te lo ho chiamato underflow, ma per essere precisi si tratta sempre di overflow ma in senso opposto.
Di solito ci si riferische ad overflow come passare da un valore positivo ad uno negativo per via della rappresentazione modulare dei numeri (il riporto/carryout), questo si chiama positive overflow.
Quello che mi riferisco io è il negative overflow, cioè sottraendo "troppo" si passa ad un numero positivo. Sorry per la confusione, ho usato una terminologia non appropriata.

Invece l'underflow vero avviene in rappresentazione di numeri troppo piccoli in rapp FP che possono essere confusi con lo $0$ :-)

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