Abilità Informatiche  Ingegneria ChimicaLezione 22 del 7/5/2012Prof. Antonino Stelitano
Docente        Antonino StelitanoTutorLezioni        Lunedì               14:00 – 17:30     aula 16               Mercoled...
Complemento a dueIl complemento a due è il metodo più diffuso per larappresentazione dei numeri negativi in informatica. L...
Complemento a dueCol complemento a due, il bit iniziale (più a sinistra) delnumero ha peso negativo o positivo; da questo ...
Complemento a dueUn numero binario di n cifre può rappresentarecon questo metodo i numeri compresi fra[-2n-1 , +2n-1-1], c...
Complemento a dueQuesto metodo consente di avere ununicarappresentazione dello zero (quando tutti i bitsono zero, eliminan...
Complemento a due    Per rappresentare lopposto di un numero binario in complemento se ne invertono, o negano, i singoli b...
Complemento a dueFacciamo un esempio rappresentando il numero -5 con             8 bit in complemento a 2.Partiamo dalla r...
Complemento a dueIl complemento a due di un numero negativo nerestituisce il numero positivo pari al valore assoluto:inver...
Complemento a dueSi noti che il complemento a due dello zero è zerostesso: invertendone la rappresentazione si ottiene unb...
Complemento a dueSi noti che il complemento a due dello zero è zerostesso: invertendone la rappresentazione si ottiene unb...
AddizioneOperare laddizione di due interi rappresentati conquesto metodo non richiede processi speciali se essisono di seg...
AddizioneQuesto processo gioca sulla lunghezza fissa di 8 bitdella rappresentazione: viene ignorato un riporto di 1che cau...
Addizione      Gli ultimi due bit (da destra a sinistra), ovvero i più   significativi, della riga dei riporti contengono ...
Addizione  Vediamo un esempio di addizione a 4 bit di 7 e 3:                    01110 (riporto)                     0111 (...
Addizione   infatti il massimo numero positivo rappresentabile incomplemento a due su quattro bit è 7 (con n=4: 2n-1 - 1 =...
EserciziDati i seguenti numeri decimali interi positivi:55, 121, 16, 42– Rappresentarli come numeri binari su 8 bit– Deter...
5510       55/2 = 27 con resto 1       27/2 = 13 con resto 1        13/2 = 6 con resto 1        6/2 = 3 con resto 0       ...
12110        121/2 = 60 con resto 1        60/2 = 30 con resto 0        30/2 = 15 con resto 0         15/2 = 7 con resto 1...
1610       16/2 = 8 con resto 0       8/2 = 4 con resto 0       4/2 = 2 con resto 0       2/2 = 1 con resto 0       1/2 = ...
4210       42/2 = 21 con resto 0       21/2 = 10 con resto 1        10/2 = 5 con resto 0        5/2 = 2 con resto 1       ...
CODIFICA IN MODULO E SEGNO5510 = 0 0 1 1 0 1 1 12        12110 = 0 1 1 1 1 0 0 12-5510 = 1 0 1 1 0 1 1 12      -121   10  ...
CODIFICA IN COMPLEMENTO A 1     5510 = 0 0 1 1 0 1 1 12     -5510 = 1 1 0 0 1 0 0 02     12110 = 0 1 1 1 1 0 0 12     -121...
CODIFICA IN COMPLEMENTO A 2     5510 = 0 0 1 1 0 1 1 12     -5510 = 1 1 0 0 1 0 0 12     12110 = 0 1 1 1 1 0 0 12    -1211...
Esercizi• Fare la somma dei numeri binari in   complemento a 2 codificati su n = 8 bit che   corrispondono ai numeri 16die...
Soluzioni degli esercizi   Somma di numeri in complemento a 2                         11100110[16] 0 0 0 1 0 0 0 0 +      ...
Soluzioni degli esercizi        Somma di numeri in complemento a 2510 = 0001012 su n = 6 bit     - 510 = 1110112 su n = 6 ...
Conversioni binario-decimale e decimale-binario1. Si convertano in decimale i seguenti numeri                        325 =...
3. Si convertino in binario i seguenti numeri decimali:                  3210 = 1000002                  6410 = 10000002
75310:         Numero Cifra         753/2=376 1         376/2=188 0          188/2=94 0          94/2= 47 0          47/2=...
Si convertino in decimale i seguenti numeri binari: 100101011001102Cifra       Operazione        Numero1           1      ...
1) Convertire i numeri decimali 335 e 564 in base 2, in base 8 e in   base 16 mostrando il risultato e tutti i passaggi sv...
Pertanto risulta: (335)10 = (101001111)2. Per la conversione inbase 8 si ha:             Divisioni              Resti     ...
Si consideri ora 564. Per la conversione in base 2 si ha:           Divisioni                                 Resti       ...
Pertanto risulta: (564)10 = (1000110100)2. Conversione in base 8:          Divisioni                      Resti        564...
Upcoming SlideShare
Loading in...5
×

Lezione 22 (7 maggio 2012)

260

Published on

Published in: Entertainment & Humor
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
260
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lezione 22 (7 maggio 2012)

  1. 1. Abilità Informatiche Ingegneria ChimicaLezione 22 del 7/5/2012Prof. Antonino Stelitano
  2. 2. Docente Antonino StelitanoTutorLezioni Lunedì 14:00 – 17:30 aula 16 Mercoledì 15:45 – 19:00 aula 17 Lab. Paolo Ercoli – via Tiburtina 205Ricevimento: Per appuntamento antonino.stelitano@uniroma1.it stelitano.a@libero.itSito web: http://w3.uniroma1.it/ab_informatiche
  3. 3. Complemento a dueIl complemento a due è il metodo più diffuso per larappresentazione dei numeri negativi in informatica. Lespressionecomplemento a due viene spesso usata impropriamente per indicareloperazione di negazione.La sua enorme diffusione è data dal fatto che i circuiti di addizione esottrazione non devono esaminare il segno di un numerorappresentato con questo sistema per determinare quale delle dueoperazioni sia necessaria, permettendo tecnologie più semplici emaggiore precisione; si utilizza un solo circuito, il sommatore, siaper laddizione che per la sottrazione.
  4. 4. Complemento a dueCol complemento a due, il bit iniziale (più a sinistra) delnumero ha peso negativo o positivo; da questo deriva chetutti i numeri che cominciano con un "1" sono numeribinari negativi, mentre tutti i numeri che cominciano conuno "0" sono numeri binari positivi. Si può così ottenere ilvalore assoluto di un numero binario negativo, prendendoil complementare (invertendo) il valore dei singoli bit eaggiungendo 1 al numero binario risultante.
  5. 5. Complemento a dueUn numero binario di n cifre può rappresentarecon questo metodo i numeri compresi fra[-2n-1 , +2n-1-1], così un binario di 8 cifre puòrappresentare i numeri compresi tra -128 e +127.
  6. 6. Complemento a dueQuesto metodo consente di avere ununicarappresentazione dello zero (quando tutti i bitsono zero, eliminando così la ridondanza dellozero che si verifica con la rappresentazione inmodulo e segno), e di operare efficientementeaddizione e sottrazione sempre avendo il primobit a indicare il segno.
  7. 7. Complemento a due Per rappresentare lopposto di un numero binario in complemento se ne invertono, o negano, i singoli bit: si applica cioèl[[operazione logica]] [[Negazione (matematica)|NOT]]. Si aggiunge infine 1 al valore del numero trovato con questa operazione.
  8. 8. Complemento a dueFacciamo un esempio rappresentando il numero -5 con 8 bit in complemento a 2.Partiamo dalla rappresentazione in binario del numero 5: 0000 0101 (5) La prima cifra è 0, quindi il numero è sicuramente positivo. Invertiamo i bit: 0 diventa 1, e 1 diventa 0: 1111 1010
  9. 9. Complemento a dueIl complemento a due di un numero negativo nerestituisce il numero positivo pari al valore assoluto:invertendo i bit della rappresentazione del numero -5(sopra) otteniamo: 0000 0100Aggiungendo 1 otteniamo: 0000 0101Che è appunto la rappresentazione del numero +5in forma binaria.
  10. 10. Complemento a dueSi noti che il complemento a due dello zero è zerostesso: invertendone la rappresentazione si ottiene unbyte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti0 (loverflow viene ignorato).
  11. 11. Complemento a dueSi noti che il complemento a due dello zero è zerostesso: invertendone la rappresentazione si ottiene unbyte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti0 (loverflow viene ignorato).
  12. 12. AddizioneOperare laddizione di due interi rappresentati conquesto metodo non richiede processi speciali se essisono di segno opposto, e il segno viene determinatoautomaticamente. Facciamo un esempio addizionando15 e -5: 11111 1110 (riporto) 0000 1111 (15) + 1111 1011 (-5) ======== 0000 1010 (10)
  13. 13. AddizioneQuesto processo gioca sulla lunghezza fissa di 8 bitdella rappresentazione: viene ignorato un riporto di 1che causerebbe un overflow, e rimane il risultatocorretto delloperazione (10).
  14. 14. Addizione Gli ultimi due bit (da destra a sinistra), ovvero i più significativi, della riga dei riporti contengono importanti informazioni sulla validità delloperazione: se il risultato è compreso o non è compreso nellintervallo dei numeri rappresentabili. Si verifica se il riporto è stato eseguito sul bit del segno ma non è stato portato fuori, o viceversa; più semplicemente, se i due bit più a sinistra sulla riga deiriporti non sono entrambi 0 o 1. Per verificare la validità del risultato è conveniente eseguire su questi due bit unoperazione EXOR.
  15. 15. Addizione Vediamo un esempio di addizione a 4 bit di 7 e 3: 01110 (riporto) 0111 (7) + 0011 (3) =========== 1010 (-6)In questo caso, come si può notare dal riporto presente solosul bit più significativo, si è in presenza di overflow, per cui ilrisultato non è 10 (come sarebbe corretto) ma -6,
  16. 16. Addizione infatti il massimo numero positivo rappresentabile incomplemento a due su quattro bit è 7 (con n=4: 2n-1 - 1 = 7).
  17. 17. EserciziDati i seguenti numeri decimali interi positivi:55, 121, 16, 42– Rappresentarli come numeri binari su 8 bit– Determinare i numeri negativi corrispondenti in binario con le seguenti rappresentazioni:• Valore assoluto e segno• In complemento a 1• In complemento a 2
  18. 18. 5510 55/2 = 27 con resto 1 27/2 = 13 con resto 1 13/2 = 6 con resto 1 6/2 = 3 con resto 0 3/2 = 1 con resto 1 1/2 = 0 con resto 1 5510 = 001101112
  19. 19. 12110 121/2 = 60 con resto 1 60/2 = 30 con resto 0 30/2 = 15 con resto 0 15/2 = 7 con resto 1 7/2 = 3 con resto 1 3/2 = 1 con resto 1 1/2 = 0 con resto 1 12110 = 011110012
  20. 20. 1610 16/2 = 8 con resto 0 8/2 = 4 con resto 0 4/2 = 2 con resto 0 2/2 = 1 con resto 0 1/2 = 0 con resto 1 1610 = 000100002
  21. 21. 4210 42/2 = 21 con resto 0 21/2 = 10 con resto 1 10/2 = 5 con resto 0 5/2 = 2 con resto 1 2/2 = 1 con resto 0 1/2 = 0 con resto 1 4210 = 001010102
  22. 22. CODIFICA IN MODULO E SEGNO5510 = 0 0 1 1 0 1 1 12 12110 = 0 1 1 1 1 0 0 12-5510 = 1 0 1 1 0 1 1 12 -121 10 = 1 1 1 1 1 0 0 121610 = 0 0 0 1 0 0 0 02 4210 = 0 0 1 0 1 0 1 02-1610 = 1 0 0 1 0 0 0 02 -4210 = 1 0 1 0 1 0 1 02
  23. 23. CODIFICA IN COMPLEMENTO A 1 5510 = 0 0 1 1 0 1 1 12 -5510 = 1 1 0 0 1 0 0 02 12110 = 0 1 1 1 1 0 0 12 -12110 = 1 0 0 0 0 1 1 02 1610 = 0 0 0 1 0 0 0 02 -1610 = 1 1 1 0 1 1 1 12 4210 = 0 0 1 0 1 0 1 02 -4210 = 1 1 0 1 0 1 0 12
  24. 24. CODIFICA IN COMPLEMENTO A 2 5510 = 0 0 1 1 0 1 1 12 -5510 = 1 1 0 0 1 0 0 12 12110 = 0 1 1 1 1 0 0 12 -12110 = 1 0 0 0 0 1 1 12 1610 = 0 0 0 1 0 0 0 02 -1610 = 1 1 1 1 0 0 0 02 4210= 0 0 1 0 1 0 1 02 -4210 = 1 1 0 1 0 1 1 02
  25. 25. Esercizi• Fare la somma dei numeri binari in complemento a 2 codificati su n = 8 bit che corrispondono ai numeri 16dieci e –42dieci• Fare la somma dei numeri binari in complemento a 2 codificati su n = 6 bit che corrispondono ai numeri -5dieci e –28dieci
  26. 26. Soluzioni degli esercizi Somma di numeri in complemento a 2 11100110[16] 0 0 0 1 0 0 0 0 + Segno: negativo (1)[-42] 1 1 0 1 0 1 1 0 Modulo del numero: si ottiene facendo il complemento a 2 di : 11100110 11001100011010 16 + 8 + 2 = 26 Quindi –2610 … oppure si calcola: (–1)x2^6+1x2^5+1x2^2+1x2^1= –64+32+4+2 = –2610
  27. 27. Soluzioni degli esercizi Somma di numeri in complemento a 2510 = 0001012 su n = 6 bit - 510 = 1110112 su n = 6 bit2810= 0111002 su n = 6 bit - 2810 = 1001002 su n = 6 bit [-5] 111011+ 011111 Segno: positivo (0) [-28] 1 0 0 1 0 0 Modulo del numero: si ottiene facendo il complemento a 2 di: (1 )0 1 1 1 1 1 11111000011 rip 1 0  overflow Quindi: risultato = +110 che non è ciò che ci aspettavamo
  28. 28. Conversioni binario-decimale e decimale-binario1. Si convertano in decimale i seguenti numeri 325 = 2 5 + 2 = 12 334 = 3 4 + 3 = 15 1233 = 1 9 + 2 3 + 3 = 18 32016 = 3 216 + 2 36 + 1 = 7212. Si convertano i seguenti numeri decimali in base 5 102310 1023=5 = 204; resto = 3 204=5 = 40; resto = 4 40=5 = 8; resto = 0 8=5 = 1; resto = 3 1=5 = 0; resto = 1 La soluzione e 130435
  29. 29. 3. Si convertino in binario i seguenti numeri decimali: 3210 = 1000002 6410 = 10000002
  30. 30. 75310: Numero Cifra 753/2=376 1 376/2=188 0 188/2=94 0 94/2= 47 0 47/2=23 1 23/2=11 1 11/2=5 1 5/2=2 1 2/2=1 0 1/2=0 1 La soluzione e 10111100012.
  31. 31. Si convertino in decimale i seguenti numeri binari: 100101011001102Cifra Operazione Numero1 1 10 1*2+0 20 2*2+0 41 4*2+1 90 9*2+0 181 18*2+1 370 37*2+0 741 74*2+1 1491 149*2+1 2990 299*2+0 5980 598*2+0 11961 1196*2+1 23931 2393*2+1 47870 4787*2 9574
  32. 32. 1) Convertire i numeri decimali 335 e 564 in base 2, in base 8 e in base 16 mostrando il risultato e tutti i passaggi svolti.Soluzione:Si consideri 335. Per la conversione in base 2 si ha:Divisioni Resti335/2 = N0 = 167 R0 = 1N0/2 = N1 = 83 R1 = 1N1/2 = N2 = 41 R2 = 1N2/2 = N3 = 20 R3 = 1N3/2 = N4 = 10 R4 = 0N4/2 = N5 = 5 R5 = 0N5/2 = N6 = 2 R6 = 1N6/2 = N7 = 1 R7 = 0N7/2 = N8 = 0 R8 = 1
  33. 33. Pertanto risulta: (335)10 = (101001111)2. Per la conversione inbase 8 si ha: Divisioni Resti 335/8 = N0= 41 R0 = 7 N0/8 = N1 = 5 R1 = 1 N1/8 = N2 = 0 R2 = 5Il risultato è: (335)10 = (517)8.Per la conversione in base 16: Divisioni Resti 335/16 => N0 = 20 R0 = 15 N0/16 => N1 = 1 R1 = 4 N1/16 => N2 = 0 R2 = 1Il risultato è: (335)10 = (14F)16
  34. 34. Si consideri ora 564. Per la conversione in base 2 si ha: Divisioni Resti 564/2 = N0 = 282 R0 = 0 N0/2 = N1 = 141 R1 = 0 N1/2 = N2 = 70 R2 = 1 N2/2 = N3 = 35 R3 = 0 N3/2 = N4 = 17 R4 = 1 N4/2 = N5 = 8 R5 = 1 N5/2 = N6 = 4 R6 = 0 N6/2 = N7 = 2 R7 = 0 N7/2 = N8 = 1 R8 = 0 N8/2 = N9 = 0 R9 =1
  35. 35. Pertanto risulta: (564)10 = (1000110100)2. Conversione in base 8: Divisioni Resti 564/8 = N0 = 70 R0 = 4 N0/8 = N1 = 8 R1 = 6 N1/8 = N2 = 1 R2 = 0 N2/8 = N3 = 0 R3 = 1 ùIl risultato è: (564)10 = (1064)8. Conversione in base 16: Divisioni Resti 564/16 = N0 = 35 R0 = 4 N0/16 = N1 = 2 R1 = 3 N1/16 = N2 = 0 R2 = 2Il risultato è: (564)10 = (234)16
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×