PDA

View Full Version : 1 byte: rappresentazione di numeri con segno


andrea.ippo
13-10-2005, 18:08
Salve a tutti, vorrei avere qualche chiarimento sulla codifica dei dati, in particolare sul byte: allora, è composto da 8 bit ognungo dei quali può assumere valori 1/0 e fin qui ci siamo.Le combinazioni sono 256 che si possono distribuire o in 0 + 1-255 oppure -128 - +127 (cioè con segno).Qualcuno mi sa spiegare perché i negativi hanno un numero in più (a parte per far tornare i conti, ovviamente :D)
per esempio: 1111 1111 vale,assumendo il primo 1 come segno +, +127,giusto?
e 0111 1111,assumendo lo zero come - dovrebbe essere -127...e il -128 da dove salta fuori?

Grazie
Ciao :)

andrea.ippo
13-10-2005, 19:05
e daje su...ho visto che l'avete visitato in 3 questo topic...AIUTATEMI!!! :help: :help: :help:

DarkTemplar
13-10-2005, 19:18
Se ricordo bene...dipende dal tipo di codifica in "modulo e segno(MS)" le combinazioni vanno da -127 e +127 mentre in "complemento a 2(C2)" vanno da -128 e + 127 perchè in MS c'è sia -0 e +0 mentre in C2 non c'e -0 quindi si aggiunge 1 numero negativo...sempre se ricordo bene

andrea.ippo
13-10-2005, 19:24
ok grazie 1000 (= 8...:D)
quello che vorrei capire è la rappresentazione di -128: 0 (segno-) e poi tutti 1...ma così si ferma a -127,o sbaglio
Grazie ancora
Ciao :)

DarkTemplar
13-10-2005, 19:50
Per rappresentare 1 numero in Complemento a 2 si fà:
Es1) -128

1)Rappresentare in binario il modulo del numero->|-128|->128->10000000
2)Aggiungere in testa tanti zeri fino ad arrivare al numero di bit
3)Fare il complemento a 1 cioè 1->0 0->1 --->01111111
4)Aggiungere 1-->10000000

Ecco -128 in C2

Es 2) -7
1)111
2)00000111
3)11111000
4)11111001

"decodifica" -128+64+32+16+8+1=-7

andrea.ippo
14-10-2005, 13:04
wow... :eek:
ok grazie 1000!!!
Ciao :)