PDA

View Full Version : [Aritmetica binaria] conversione da binario in complemento a due


mistergks
18-04-2013, 17:43
Ho un dubbio..
Come sappiamo il complemento a due
Di un numero decimale si fa:
Se x>0 f(x) e si converte normalmente;
Se x<0 f(2^p - |x|) p sarebbe il numero di bit

Ora il mio dubbio é
Ho un numero binario in complemento a 2 e voglio il corrispondente in base 10!
Se é positivo é facile perche si fa normalmente col metodo posizionale!

Se il numero invece é negativo???
Avevo pensato di fare cosi ma non viene:

Dato il numero binario 1001000 in complemento a due lo si converta in base 10:
1001000

Ho fatto:
Inverto i bit
1001000 -> 0110111
Tolgo 1
0110111-1= 0110110
A questo punto converto col metodo posizionale e mi esce 54.

Faccio il controllo dalla formula del complemento a due:
2(7)-54=74

Invece mi sa che dovrebbe venire 72 o meglio -72

freedzer
18-04-2013, 18:02
Devi aggiungere 1 non toglierlo, vedrai che torna....e la prossima volta spendi almeno 2 minuti su wikipedia invece di catapultarti a postare qui :D

mistergks
18-04-2013, 18:04
Devi aggiungere 1 non toglierlo, vedrai che torna....e la prossima volta spendi almeno 2 minuti su wikipedia invece di catapultarti a postare qui :D

Ma 1 lo aggiungo quando converto da decimale a binario! Qui invece voglio fare da binario a decimale! Ai presume che l'1 gia sia stato aggiunto o no?!

Inviato dal mio GT-I9003 usando Tapatalk

freedzer
18-04-2013, 18:12
Il procedimento è speculare, provo a spiegartelo: quando converti un positivo in complemento a 2 dopo averne invertito le cifre (tieni a mente questo) gli aggiungi 1, e ciò è come se facessi un'operazione di sottrazione in logica positiva. Per questo quando lo converti nuovamente devi aggiungere 1, per compensare a quella sottrazione. L'ho detta un po' così ma è questo il principio.

mistergks
18-04-2013, 18:13
Ho provato a fare come hai detto e viene 72! Non so il perche o se è un caso

Inviato dal mio GT-I9003 usando Tapatalk

The_ouroboros
18-04-2013, 18:16
Ho provato a fare come hai detto e viene 72! Non so il perche o se è un caso

Inviato dal mio GT-I9003 usando Tapatalk

domanda magari banale...
Hai una vaga idea di come si passi da una base all'altra e di come sia il complemento a 1 e 2? :)

freedzer
18-04-2013, 18:16
Ho provato a fare come hai detto e viene 72! Non so il perche o se è un caso

Inviato dal mio GT-I9003 usando Tapatalk

........Ok, visto che non ti arrendi ti linko wikipedia, vediamo se dubiti pure di lei:

http://it.wikipedia.org/wiki/Complemento_a_due

mistergks
18-04-2013, 22:19
........Ok, visto che non ti arrendi ti linko wikipedia, vediamo se dubiti pure di lei:

http://it.wikipedia.org/wiki/Complemento_a_due
Ero andato gia su questa pagina ma non ho letto bene! Ok grazie! Tutto è bene quel che finisce bene!


Inviato dal mio GT-I9003 usando Tapatalk

mistergks
19-04-2013, 01:05
scusate, quanto vale quel numero in complemento a 2? :mbe:

Quale?

Inviato dal mio GT-I9003 usando Tapatalk

mistergks
19-04-2013, 10:49
1001000

-56

mistergks
19-04-2013, 23:44
ok... da dove vi sono usciti fuori quei 72, 74 ecc... ? :D

Leggi tutto il topic!
Il 72 viene fuori dalla formula del complemento a due: 2^p-|x|




Inviato dal mio GT-I9003 usando Tapatalk

mistergks
20-04-2013, 15:58
sarà che mi sto rincoglionendo ma continuo a non capire.

1001000 è un numero in complemento a 2, che vale -56 in base 10. cos'è "la formula del complemento a 2"? :mbe:

[edit]
ah ho capito, quella formula sarebbe un modo veloce per determinare la rappresentazione binaria in complemento a 2 di un numero in base 10. :D

Esattamente!

Inviato dal mio GT-I9003 usando Tapatalk

cdimauro
20-04-2013, 20:55
........Ok, visto che non ti arrendi ti linko wikipedia, vediamo se dubiti pure di lei:

http://it.wikipedia.org/wiki/Complemento_a_due
Wikipedia non è garanzia di affidabilità.