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: 6403
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