|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
[Aritmetica binaria] conversione da binario in complemento a due
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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2009
Messaggi: 460
|
Devi aggiungere 1 non toglierlo, vedrai che torna....e la prossima volta spendi almeno 2 minuti su wikipedia invece di catapultarti a postare qui
![]()
__________________
My PC: Intel Core i7 930 @3.6GHz/Asus P6X58D-E/ASUS Radeon R7 270X 4GB GDDR5/6GB DDR3 Corsair Dominator 1600Mhz cas8/HAF 922 ![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
Quote:
Inviato dal mio GT-I9003 usando Tapatalk |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2009
Messaggi: 460
|
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.
__________________
My PC: Intel Core i7 930 @3.6GHz/Asus P6X58D-E/ASUS Radeon R7 270X 4GB GDDR5/6GB DDR3 Corsair Dominator 1600Mhz cas8/HAF 922 ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
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 |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7098
|
Quote:
Hai una vaga idea di come si passi da una base all'altra e di come sia il complemento a 1 e 2? ![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jan 2009
Messaggi: 460
|
Quote:
http://it.wikipedia.org/wiki/Complemento_a_due
__________________
My PC: Intel Core i7 930 @3.6GHz/Asus P6X58D-E/ASUS Radeon R7 270X 4GB GDDR5/6GB DDR3 Corsair Dominator 1600Mhz cas8/HAF 922 ![]() |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
Quote:
Inviato dal mio GT-I9003 usando Tapatalk |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
Quote:
Inviato dal mio GT-I9003 usando Tapatalk |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:09.