SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Abilità Informatiche
  Ingegneria Chimica
Lezione 22 del 7/5/2012




Prof. Antonino Stelitano
Docente        Antonino Stelitano

Tutor
Lezioni        Lunedì               14:00 – 17:30     aula 16

               Mercoledì            15:45 – 19:00     aula 17

                                    Lab. Paolo Ercoli – via Tiburtina 205

Ricevimento:   Per appuntamento antonino.stelitano@uniroma1.it

                                    stelitano.a@libero.it

Sito web:      http://w3.uniroma1.it/ab_informatiche
Complemento a due
Il complemento a due è il metodo più diffuso per la
rappresentazione dei numeri negativi in informatica. L'espressione
complemento a due viene spesso usata impropriamente per indicare
l'operazione di negazione.

La sua enorme diffusione è data dal fatto che i circuiti di addizione e
sottrazione non devono esaminare il segno di un numero
rappresentato con questo sistema per determinare quale delle due
operazioni sia necessaria, permettendo tecnologie più semplici e
maggiore precisione; si utilizza un solo circuito, il sommatore, sia
per l'addizione che per la sottrazione.
Complemento a due
Col complemento a due, il bit iniziale (più a sinistra) del
numero ha peso negativo o positivo; da questo deriva che
tutti i numeri che cominciano con un "1" sono numeri
binari negativi, mentre tutti i numeri che cominciano con
uno "0" sono numeri binari positivi. Si può così ottenere il
valore assoluto di un numero binario negativo, prendendo
il complementare (invertendo) il valore dei singoli bit e
aggiungendo 1 al numero binario risultante.
Complemento a due



Un numero binario di n cifre può rappresentare
con 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.
Complemento a due

Questo metodo consente di avere un'unica
rappresentazione dello zero (quando tutti i bit
sono zero, eliminando così la ridondanza dello
zero che si verifica con la rappresentazione in
modulo e segno), e di operare efficientemente
addizione e sottrazione sempre avendo il primo
bit a indicare il segno.
Complemento a due

    Per rappresentare l'opposto 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.
Complemento a due

Facciamo 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
Complemento a due
Il complemento a due di un numero negativo ne
restituisce il numero positivo pari al valore assoluto:
invertendo i bit della rappresentazione del numero -5
(sopra) otteniamo:
                 0000 0100
Aggiungendo 1 otteniamo:

               0000 0101

Che è appunto la rappresentazione del numero +5
in forma binaria.
Complemento a due


Si noti che il complemento a due dello zero è zero
stesso: invertendone la rappresentazione si ottiene un
byte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti
0 (l'overflow viene ignorato).
Complemento a due


Si noti che il complemento a due dello zero è zero
stesso: invertendone la rappresentazione si ottiene un
byte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti
0 (l'overflow viene ignorato).
Addizione
Operare l'addizione di due interi rappresentati con
questo metodo non richiede processi speciali se essi
sono di segno opposto, e il segno viene determinato
automaticamente. Facciamo un esempio addizionando
15 e -5:

  11111 1110   (riporto)
   0000 1111   (15)
 + 1111 1011   (-5)
 ========
   0000 1010    (10)
Addizione

Questo processo gioca sulla lunghezza fissa di 8 bit
della rappresentazione: viene ignorato un riporto di 1
che causerebbe un overflow, e rimane il risultato
corretto dell'operazione (10).
Addizione
      Gli ultimi due bit (da destra a sinistra), ovvero i più
   significativi, della riga dei riporti contengono importanti
  informazioni sulla validità dell'operazione: se il risultato è
    compreso o non è compreso nell'intervallo 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 dei
riporti non sono entrambi 0 o 1. Per verificare la validità del
       risultato è conveniente eseguire su questi due bit
                      un'operazione EXOR.
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 solo
sul bit più significativo, si è in presenza di overflow, per cui il
risultato non è 10 (come sarebbe corretto) ma -6,
Addizione

   infatti il massimo numero positivo rappresentabile in
complemento a due su quattro bit è 7 (con n=4: 2n-1 - 1 = 7).
Esercizi

Dati 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
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
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
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
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
CODIFICA IN MODULO E SEGNO



5510 = 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 12




1610 = 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
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
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
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
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
Soluzioni degli esercizi
        Somma di numeri in complemento a 2
510 = 0001012 su n = 6 bit     - 510 = 1110112 su n = 6 bit
2810= 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
Conversioni binario-decimale e decimale-binario

1. 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 = 721

2. 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
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=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.
Si convertino in decimale i seguenti numeri binari:
 100101011001102
Cifra       Operazione        Numero
1           1                 1
0           1*2+0             2
0           2*2+0             4
1           4*2+1             9
0           9*2+0             18
1           18*2+1             37
0           37*2+0            74
1           74*2+1            149
1           149*2+1           299
0           299*2+0           598
0           598*2+0           1196
1           1196*2+1          2393
1           2393*2+1          4787
0           4787*2            9574
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                  Resti
335/2 = N0 = 167           R0 = 1
N0/2 = N1 = 83             R1 = 1
N1/2 = N2 = 41             R2 = 1
N2/2 = N3 = 20             R3 = 1
N3/2 = N4 = 10             R4 = 0
N4/2 = N5 = 5              R5 = 0
N5/2 = N6 = 2              R6 = 1
N6/2 = N7 = 1              R7 = 0
N7/2 = N8 = 0              R8 = 1
Pertanto risulta: (335)10 = (101001111)2. Per la conversione in
base 8 si ha:
             Divisioni              Resti
            335/8 = N0= 41          R0 = 7
            N0/8 = N1 = 5           R1 = 1
            N1/8 = N2 = 0           R2 = 5
Il 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 = 1

Il risultato è: (335)10 = (14F)16
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
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 = 2

Il risultato è: (564)10 = (234)16

Más contenido relacionado

La actualidad más candente

Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Michele Maffucci
 
Il quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaIl quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaimartini
 
Sistema di numerazione
Sistema di numerazioneSistema di numerazione
Sistema di numerazioneGilda Tobia
 
Contenuti 2 modificato
Contenuti 2 modificatoContenuti 2 modificato
Contenuti 2 modificatoNicola Trillo
 
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliSistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliI.S.I.S. "Antonio Serra" - Napoli
 
Webhelp Fisica prima superiore
Webhelp Fisica prima superioreWebhelp Fisica prima superiore
Webhelp Fisica prima superioreEduardo Andrade
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteSTELITANO
 
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Michele Maffucci
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Esercizi applicativi compito_17-11-2010
Esercizi applicativi compito_17-11-2010Esercizi applicativi compito_17-11-2010
Esercizi applicativi compito_17-11-2010Matekanc
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteSTELITANO
 

La actualidad más candente (19)

Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
 
Il quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematicaIl quaderno delle_regole_di_matematica
Il quaderno delle_regole_di_matematica
 
Le 4 operazioni de marzi
Le 4 operazioni   de marziLe 4 operazioni   de marzi
Le 4 operazioni de marzi
 
Sistema di numerazione
Sistema di numerazioneSistema di numerazione
Sistema di numerazione
 
disequazioni
disequazionidisequazioni
disequazioni
 
Contenuti 2 modificato
Contenuti 2 modificatoContenuti 2 modificato
Contenuti 2 modificato
 
Gli insiemi n e z
Gli insiemi n e zGli insiemi n e z
Gli insiemi n e z
 
Gli insiemi q e r
Gli insiemi q e rGli insiemi q e r
Gli insiemi q e r
 
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliSistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
 
Webhelp Fisica prima superiore
Webhelp Fisica prima superioreWebhelp Fisica prima superiore
Webhelp Fisica prima superiore
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
Sistemi di numerazione
Sistemi di numerazioneSistemi di numerazione
Sistemi di numerazione
 
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
 
Mc d
Mc dMc d
Mc d
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Mc d
Mc dMc d
Mc d
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Esercizi applicativi compito_17-11-2010
Esercizi applicativi compito_17-11-2010Esercizi applicativi compito_17-11-2010
Esercizi applicativi compito_17-11-2010
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 

Destacado

Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012STELITANO
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)STELITANO
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 

Destacado (9)

Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
الدقي
الدقيالدقي
الدقي
 

Similar a Lezione 22 (7 maggio 2012)

Fondamenti esercitazioni parte2c
Fondamenti esercitazioni parte2cFondamenti esercitazioni parte2c
Fondamenti esercitazioni parte2cFabrizio Solinas
 
Vacaze natale compiti
Vacaze natale compitiVacaze natale compiti
Vacaze natale compitigiovyrind
 
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFabrizio Solinas
 
Laddizione E La Sottrazione Nellinsieme N
Laddizione E La Sottrazione Nellinsieme NLaddizione E La Sottrazione Nellinsieme N
Laddizione E La Sottrazione Nellinsieme Ngiov_000
 
Sistemi numerazione
Sistemi numerazione Sistemi numerazione
Sistemi numerazione cinziabb
 
Ligouras mat v_esam_equescom2011_02
Ligouras mat v_esam_equescom2011_02Ligouras mat v_esam_equescom2011_02
Ligouras mat v_esam_equescom2011_02Panagiote Ligouras
 

Similar a Lezione 22 (7 maggio 2012) (11)

Sistemidi numerazione
Sistemidi numerazioneSistemidi numerazione
Sistemidi numerazione
 
Fondamenti esercitazioni parte2c
Fondamenti esercitazioni parte2cFondamenti esercitazioni parte2c
Fondamenti esercitazioni parte2c
 
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGISISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
 
Vacaze natale compiti
Vacaze natale compitiVacaze natale compiti
Vacaze natale compiti
 
AlgoMooc 05.02. La grande O
AlgoMooc 05.02. La grande OAlgoMooc 05.02. La grande O
AlgoMooc 05.02. La grande O
 
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
 
Crc
CrcCrc
Crc
 
Diagrammi di Bode
Diagrammi di BodeDiagrammi di Bode
Diagrammi di Bode
 
Laddizione E La Sottrazione Nellinsieme N
Laddizione E La Sottrazione Nellinsieme NLaddizione E La Sottrazione Nellinsieme N
Laddizione E La Sottrazione Nellinsieme N
 
Sistemi numerazione
Sistemi numerazione Sistemi numerazione
Sistemi numerazione
 
Ligouras mat v_esam_equescom2011_02
Ligouras mat v_esam_equescom2011_02Ligouras mat v_esam_equescom2011_02
Ligouras mat v_esam_equescom2011_02
 

Más de STELITANO

Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012STELITANO
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012STELITANO
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisiSTELITANO
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricercaSTELITANO
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamentiSTELITANO
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettoriSTELITANO
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatoriSTELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3STELITANO
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2STELITANO
 

Más de STELITANO (20)

Risultati
RisultatiRisultati
Risultati
 
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricerca
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamenti
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettori
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2
 

Lezione 22 (7 maggio 2012)

  • 1. Abilità Informatiche Ingegneria Chimica Lezione 22 del 7/5/2012 Prof. Antonino Stelitano
  • 2. Docente Antonino Stelitano Tutor Lezioni Lunedì 14:00 – 17:30 aula 16 Mercoledì 15:45 – 19:00 aula 17 Lab. Paolo Ercoli – via Tiburtina 205 Ricevimento: Per appuntamento antonino.stelitano@uniroma1.it stelitano.a@libero.it Sito web: http://w3.uniroma1.it/ab_informatiche
  • 3. Complemento a due Il complemento a due è il metodo più diffuso per la rappresentazione dei numeri negativi in informatica. L'espressione complemento a due viene spesso usata impropriamente per indicare l'operazione di negazione. La sua enorme diffusione è data dal fatto che i circuiti di addizione e sottrazione non devono esaminare il segno di un numero rappresentato con questo sistema per determinare quale delle due operazioni sia necessaria, permettendo tecnologie più semplici e maggiore precisione; si utilizza un solo circuito, il sommatore, sia per l'addizione che per la sottrazione.
  • 4. Complemento a due Col complemento a due, il bit iniziale (più a sinistra) del numero ha peso negativo o positivo; da questo deriva che tutti i numeri che cominciano con un "1" sono numeri binari negativi, mentre tutti i numeri che cominciano con uno "0" sono numeri binari positivi. Si può così ottenere il valore assoluto di un numero binario negativo, prendendo il complementare (invertendo) il valore dei singoli bit e aggiungendo 1 al numero binario risultante.
  • 5. Complemento a due Un numero binario di n cifre può rappresentare con 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. Complemento a due Questo metodo consente di avere un'unica rappresentazione dello zero (quando tutti i bit sono zero, eliminando così la ridondanza dello zero che si verifica con la rappresentazione in modulo e segno), e di operare efficientemente addizione e sottrazione sempre avendo il primo bit a indicare il segno.
  • 7. Complemento a due Per rappresentare l'opposto 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. Complemento a due Facciamo 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. Complemento a due Il complemento a due di un numero negativo ne restituisce il numero positivo pari al valore assoluto: invertendo i bit della rappresentazione del numero -5 (sopra) otteniamo: 0000 0100 Aggiungendo 1 otteniamo: 0000 0101 Che è appunto la rappresentazione del numero +5 in forma binaria.
  • 10. Complemento a due Si noti che il complemento a due dello zero è zero stesso: invertendone la rappresentazione si ottiene un byte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti 0 (l'overflow viene ignorato).
  • 11. Complemento a due Si noti che il complemento a due dello zero è zero stesso: invertendone la rappresentazione si ottiene un byte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti 0 (l'overflow viene ignorato).
  • 12. Addizione Operare l'addizione di due interi rappresentati con questo metodo non richiede processi speciali se essi sono di segno opposto, e il segno viene determinato automaticamente. Facciamo un esempio addizionando 15 e -5: 11111 1110 (riporto) 0000 1111 (15) + 1111 1011 (-5) ======== 0000 1010 (10)
  • 13. Addizione Questo processo gioca sulla lunghezza fissa di 8 bit della rappresentazione: viene ignorato un riporto di 1 che causerebbe un overflow, e rimane il risultato corretto dell'operazione (10).
  • 14. Addizione Gli ultimi due bit (da destra a sinistra), ovvero i più significativi, della riga dei riporti contengono importanti informazioni sulla validità dell'operazione: se il risultato è compreso o non è compreso nell'intervallo 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 dei riporti non sono entrambi 0 o 1. Per verificare la validità del risultato è conveniente eseguire su questi due bit un'operazione EXOR.
  • 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 solo sul bit più significativo, si è in presenza di overflow, per cui il risultato non è 10 (come sarebbe corretto) ma -6,
  • 16. Addizione infatti il massimo numero positivo rappresentabile in complemento a due su quattro bit è 7 (con n=4: 2n-1 - 1 = 7).
  • 17. Esercizi Dati 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. 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. 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. 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. 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. CODIFICA IN MODULO E SEGNO 5510 = 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 12 1610 = 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. 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. 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. 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. 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. Soluzioni degli esercizi Somma di numeri in complemento a 2 510 = 0001012 su n = 6 bit - 510 = 1110112 su n = 6 bit 2810= 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. Conversioni binario-decimale e decimale-binario 1. 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 = 721 2. 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. 3. Si convertino in binario i seguenti numeri decimali: 3210 = 1000002 6410 = 10000002
  • 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. Si convertino in decimale i seguenti numeri binari: 100101011001102 Cifra Operazione Numero 1 1 1 0 1*2+0 2 0 2*2+0 4 1 4*2+1 9 0 9*2+0 18 1 18*2+1 37 0 37*2+0 74 1 74*2+1 149 1 149*2+1 299 0 299*2+0 598 0 598*2+0 1196 1 1196*2+1 2393 1 2393*2+1 4787 0 4787*2 9574
  • 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 Resti 335/2 = N0 = 167 R0 = 1 N0/2 = N1 = 83 R1 = 1 N1/2 = N2 = 41 R2 = 1 N2/2 = N3 = 20 R3 = 1 N3/2 = N4 = 10 R4 = 0 N4/2 = N5 = 5 R5 = 0 N5/2 = N6 = 2 R6 = 1 N6/2 = N7 = 1 R7 = 0 N7/2 = N8 = 0 R8 = 1
  • 33. Pertanto risulta: (335)10 = (101001111)2. Per la conversione in base 8 si ha: Divisioni Resti 335/8 = N0= 41 R0 = 7 N0/8 = N1 = 5 R1 = 1 N1/8 = N2 = 0 R2 = 5 Il 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 = 1 Il risultato è: (335)10 = (14F)16
  • 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. 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 = 2 Il risultato è: (564)10 = (234)16