Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - Problema Calcolco SOmma Complemento a 2 a 8bit
Forum - Tutto e di + - Problema Calcolco SOmma Complemento a 2 a 8bit

Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 0:21
Sabato, 23/01/2010
Ragazzi ho provato ad eseguire questo calcolo in complemento a 2 a 8 bit (quindi abbiamo (2^8-1) -1 = 127 numero massimo positivo esprimibile per nn ricadere nell'overflow e -2^8= -127 per quanto riguarda il massimo negativo esprimibile..

La mia domanda è questa: se calcolo (32-64) + 7 ---> al primo calcolo mi risulta

00100000 +         32 in binario
11000000 =         -64 in complemento a 2
--------
11100000      

Non dovrebbe essere -32 il risultato (non c'è overflow)?? il primo 1 sta per il segno negativo quindi risulta 1100000 ovvero 48 (32 + 16)...dove sbaglio?

Ultima modifica effettuata da dengel il 23/01/2010 alle 0:33
PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 0:58
Sabato, 23/01/2010
Non ho capito da dove ti esce questa affermazione:
Testo quotato

il primo 1 sta per il segno negativo


Ma non è vero, se hai studiato la rappresentazione del complemento a 2,da non confondere con la rappresentazione con modulo e segno che quello si parla del bit più significativo cioè il primo(forse per quello ti riferivi alla frase che ho quotato). Torniamo al tuo esercizio:

32 base 10 in binario fa 00100000 base 2, 64 fa 01000000 base 2
si tratta del caso 32 + (-64), quindi dobbiamo portare a complemento a 2 64, e hai fatto bene il calcolo cioè : 11000000  
Bene facciamo la tradizionale somma come hai fatto tu:
00100000 +
11000000 =
--------
11100000
questo è il risultato di 32 + (-64) = -32
infatti se prendi 32 e lo porti a complemento a 2, cioè 00100000 -> 11011111 + 1 diventa appunto 11100000
-32 + 7  è banale, 7 in binario fa 00000111 quindi:
00000111
11100000 =
--------
11100111 cioè -25, infatti è già convertito in complemento a 2
per verificare se è vero che è 25, controlliamo: 25 in binario fa 00011001 -> 11100110 + 1 = 11100111 Quindi è corretto :D

Forse ti sarai confuso, le due rappresentazioni sia complemento a 2 e sia modulo e segno vanno distinte, ad eccezione il complemento a 2 che fa dell'uso del complemento a 1.

edit: forse mi sono dilungato troppo 8-|, in ogni caso spero di averti chiarito.. se hai domande chiedi pure ;) Good night! ^^

Ultima modifica effettuata da Lawliet il 23/01/2010 alle 1:09
PM Quote
Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 1:55
Sabato, 23/01/2010
grazie , spiegazione esaustiva :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:16
Sabato, 23/01/2010
E

-2^8= -128

non -127


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 13:20
Sabato, 23/01/2010
si si scusa ho scritto due volte 127... :)

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 16:51
Sabato, 23/01/2010
Testo quotato

Postato originariamente da nessuno:
E
-2^8= -128
non -127



cavoli, non ci avevo fatto proprio caso :rofl:

PM Quote
Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 12:20
Giovedì, 28/01/2010
Nel caso in cui si genera overflow , come faccio a sapere se è giusto il mio calcolo??
(8 bit)

(- 120 - 30 ) + 10
                         120 è  0 1 1 1 1 0 0 0 compl a 2:    1 0 0 0 1 0 0 0  
                          30 è  0 0 0 1 1 1 1 0 compl a 2:    1 1 1 0 0 0 1 0


   1 0 0 0 1 0 0 0 (-120) +
   1 1 1 0 0 0 1 0  (-30) =
1 0 1 1 0 1 0 1 0    
  
   il primo 1 indica l' overflow..qual'è il senso di sommare 10 a un numero che nn è il risultato della somma?

cmq continuo
         1   1
   0 1 1 0 1 0 1 0 (??)  +
   0 0 0 0 1 0 1 0 (+10) =
   0 1 1 1 0 1 0 0  

Ora cosa dovrei concludere?? please help
                      

PM Quote
Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 13:59
Giovedì, 28/01/2010
niente tutto ok , bastava convertire i risultati in complemento a 2 ...

PM Quote