45
Operazioni con numeri binari Corso di recupero - biennio integrato lezione 2 Prof. Michele Maffucci CC-BY-SA

Operazioni con numeri binari 140401174612-phpapp01

  • Upload
    a-t

  • View
    253

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Operazioni con numeri binari 140401174612-phpapp01

Operazioni con numeri binariCorso di recupero - biennio integrato

lezione 2

Prof. Michele Maffucci

CC-BY-SA

Page 2: Operazioni con numeri binari 140401174612-phpapp01

Introduzione

Prof. Michele MaffucciCC-BY-SA

Page 3: Operazioni con numeri binari 140401174612-phpapp01

Queste slide sono destinate agli allievi del biennio integrato (classe 1’) che necessitano di un percorso di recupero sugli argomenti trattati durante le lezioni ordinarie.

Il percorso scelto è un estratto delle lezioni svolte durante i miei corsi di informatica. Nelle slide vi sono brevi trattazioni teoriche che non sostituiscono in alcun modo il libro di testo, ma sono di supporto al recupero e all’approfondimento degli argomenti trattati a lezione.

Integrazioni a queste slide ed approfondimenti potranno essere trovate anche sul mio sito personale:

http://www.maffucci.it/

Per contatti ed ulteriori informazioni rimando alle ultime pagine di queste slide.

Grazie

Le slide e gli esercizi sono suscettibili di variazioni/correzioni che potranno essere fatte in ogni momento.

Prof. Michele Maffucci

Sistemi numerici Introduzione

CC-BY-SA

Page 4: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Argomenti

● addizione● sottrazione● moltiplicazione● divisione● somme algebriche● rappresentazione dei numeri negativi● esercizi

Struttura della lezione

CC-BY-SA

Sistemi numerici

Page 5: Operazioni con numeri binari 140401174612-phpapp01

Addizione binaria

Prof. Michele MaffucciCC-BY-SA

Page 6: Operazioni con numeri binari 140401174612-phpapp01

Tutte le operazioni con i numeri binari soddisfano alle stesse regole valide per i numeri decimali e risultano molto più semplici da svolgere in quanto le cifre usate sono solamente due.

Addizione binaria

Viene eseguita allo stesso modo di quella decimale, la tabella per l’addizione di due cifre binarie è la seguente:

Prof. Michele Maffucci

Operazioni con numeri binari Addizione binaria

CC-BY-SA

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0 con riporto di 1

Poiché nel sistema binario la cifra più alta è 1, quando la somma è maggiore di 1 essa richiede il riporto di una cifra in pieno accordo a quanto avviene nel sistema decimale dove essendo 9 la cifra più alta ogni somma maggiore di 9 richiede il riporto di una cifra.

Page 7: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari Addizione binaria

CC-BY-SA

1R 1R 1R riporto

1 1 1 1 primo addendo 1 5

+ 1 1 1 0 secondo addendo + 1 4

1 1 1 0 1 somma 2 9

Esercizio: addizionari i numeri binari 1111 e 11100

con 1R cifra di riporto.

Esercizio: addizionari i numeri binari 111001 e 001101

1R 1R 1R riporto 1R

1 1 1 0 0 1 primo addendo 5 7

+ 0 0 1 1 0 1 secondo addendo + 1 3

1 0 0 0 1 1 0 somma 2 9

binario decimale

binario decimale

Page 8: Operazioni con numeri binari 140401174612-phpapp01

Sottrazione binaria

Prof. Michele MaffucciCC-BY-SA

Page 9: Operazioni con numeri binari 140401174612-phpapp01

Sottrazione binaria

Operazione inversa dell’addizione. Può essere eseguita come per il sistema decimale, prendendo in prestito una cifra della colonna di ordine superiore tutte le volte che la differenza scende sotto lo 0.La tabella che soddisfa la sottrazione binaria tra due bit è la seguente:

Prof. Michele Maffucci

Operazioni con numeri binari Sottrazione binaria

CC-BY-SA

0 - 0 = 00 - 1 = 1 con riporto negativo di 11 - 0 = 11 - 1 = 0

Esercizio: sottrazione di (0001101)2 e (1000110)2

1P 1P 1P 1P prestito 1P

1 0 0 0 1 1 0 minuendo 7 0

- 0 0 0 1 1 0 1 sottraendo - 1 3

0 1 1 1 0 0 1 differenza 5 7

binario decimale

con 1P cifra presa in prestito.

Page 10: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari Sottrazione binaria

CC-BY-SA

Esercizio: sottrazione di (01110)2 e (11101)2

1P 1P 1P prestito

1 1 1 0 1 minuendo 2 9

- 0 1 1 1 0 sottraendo - 1 4

0 1 1 1 1 differenza 1 5

binario decimale

La sottrazione può essere eseguita con il metodo appena visto oppure tramite il metodo del complemento a due ottenuto invertendo tutti i bit del sottraendo, cioè scambiando tutti gli 1 in 0 e viceversa e aggiungendo 1 al risultato. La differenza tra i due numeri si trova addizionando il complemento del sottraendo al minuendo e trascurando l’eventuale riporto dell’ultima cifra, vedremo più avanti in queste slide.

Page 11: Operazioni con numeri binari 140401174612-phpapp01

Moltiplicazione binaria

Prof. Michele MaffucciCC-BY-SA

Page 12: Operazioni con numeri binari 140401174612-phpapp01

La moltiplicazione binaria, intesa come addizione ripetuta, segue le stesse regole della moltiplicazione decimale. Questa la tabella corrispondente:

Prof. Michele Maffucci

Operazioni con numeri binari Moltiplicazione binaria

CC-BY-SA

0 x 0 = 00 x 1 = 01 x 0 = 01 x 1 = 1

Esercizio: moltiplicazione di (1111)2 per (10)2

binario decimale

1 1 1 1 moltiplicando 1 5

1 0 moltiplicatore x 2

x 0 0 0 0 3 0

1 1 1 1 -

1 1 1 1 0

Page 13: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari Moltiplicazione binaria

CC-BY-SA

Esercizio: moltiplicazione di (10111)2 per (110)2

binario decimale

1 0 1 1 1 moltiplicando 2 3

x 1 1 0 moltiplicatore x 2

0 0 0 0 0 1 3 8

1 0 1 1 1 -

1 0 1 1 1 -

1 0 0 0 1 0 1 0

Page 14: Operazioni con numeri binari 140401174612-phpapp01

Divisione binaria

Prof. Michele MaffucciCC-BY-SA

Page 15: Operazioni con numeri binari 140401174612-phpapp01

La divisione nel sistema binario segue lo stesso procedimento della divisione nel sistema decimalee si esegue contando quante volte un numero può essere sottratto da un altro. Nel sistema binario la determinazione del quoziente risulta semplificata essendo possibili solamente solo due valori 0 e 1.

Prof. Michele Maffucci

Operazioni con numeri binari Moltiplicazione binaria

CC-BY-SA

Esercizio: divisione di (1111)2 per (100)2

1 1 1 1 1 0 0

1 0 0 11,11

- 1 1 1

1 0 0

- 1 1 0

1 0 0

1 0 0

1 0 0

- - -

1 5 4

1 2 3,75

- 3 0

2 8

- 2 0

2 0

- -

binario decimale

dividendo divisore dividendo divisore

Page 16: Operazioni con numeri binari 140401174612-phpapp01

Si può notare che lo spostamento delle cifre significative di un numero binario di N posti verso sinistra rispetto alla virgola, equivale a dividere il suo valore per 2N.

Si consideri ad esempio di voler dividere per 23 = 8 il numero (1100100)2 = (100)10 si ottiene immediatamente il risutato:

(1100,1)2 = (12,5)10

Prof. Michele Maffucci

Operazioni con numeri binari Moltiplicazione binaria

CC-BY-SA

Page 17: Operazioni con numeri binari 140401174612-phpapp01

Complemento a 1 e 2

Prof. Michele MaffucciCC-BY-SA

Page 18: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Si consideri un numero binario costituito da n bit si definisce complemento a uno di un numero A la quantità:

A1 = (2n-1)-A

detto anche solo complemento.

Esempio. A = 11001 il suo complemento sarà:

A1 = (25-1) - 11001 = (100000-1) -11001 = 01111 - 11001 =

= 00110

Complemento a 1 - metodo 1

Complemento a 1 e 2

Page 19: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Più sinteticamente per la determinazione del complemento a 1 è possibile applicare la seguente regola pratica:

il complemento a 1 di un numero binario si ottiene scambiando tra loro gli 0 con gli 1 e viceversa.

Esempio 1: A = 11001 il suo complemento sarà A1 = 00110

Esempio 2: A = 10011100 il suo complemento sarà

A1 = 01100011

Complemento a 1 - metodo 2

Complemento a 1 e 2

Page 20: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Si consideri un numero binario costituito da n bit si definisce complemento a due di un numero A la quantità:

A2 = 2n-A

Esempio. Si consideri il numero A = 10011100 il complemento a 2 di A sarà:

A2 = 28 - A = 100000000 - 10011100

1 0 0 0 0 0 0 0 0

1 0 0 1 1 1 0 0

0 0 1 1 0 0 1 0 0

overflow - questo bit va oltre la dimensione del numero dei bit di A, qundi si elimina

Complemento a 2 - metodo 1

Complemento a 1 e 2

Page 21: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Più sinteticamente per la determinazione del complemento a 2 è possibile applicare la seguente regola pratica:

il complemento a 2 di un numero binario si ottiene sommando 1 al suo complemento a 1.

Esempio. Si consideri il numero A = 10011100 il complemento a 2 di A sarà:

A = 10011100 > A1 = 01100011

A2 = A1 + 1 = 01100011 + 1 = 01100100

Complemento a 2 - metodo 2

Complemento a 1 e 2

Page 22: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Per calcolare il complemento a due è possibile applicare anche la seguente regola pratica:

dato un numero N, per ottenere il suo complemento a 2, si riscrivono i bit del numero stesso a partire da destra lasciando inalterati tutti gli zeri fino al primo bit 1 compreso, mentre i successivi bit vengono scambiati (gli 0 in 1 e gli 1 in 0)

Esempio: A = 10011100

A 10011100

A2

01100100bit inalteratibit scambiati

Complemento a 2 - metodo 3

Complemento a 1 e 2

Page 23: Operazioni con numeri binari 140401174612-phpapp01

Somme algebriche

Prof. Michele MaffucciCC-BY-SA

Page 24: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari Somme algebriche

CC-BY-SA

1. Per effettuare la somma non è necessario badare ai segni degli operandi, l’operazione si effettua come accade per la somma tra numeri binari già vista.

2. Per effettuare la sottrazione si possono usare due tecniche una che utilizza il complemento a 2 ed un’altra che utilizza il complemento a 1

Regole di calcolo

Page 25: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 2

La differenza tra due numeri binari A e B si ottiene sommando ad A il complemento a 2 di B, tenendo conto che:

A. se il bit di riporto complessivo è 1 il risultato è corretto e il procedimento si conclude in questo caso il numero risulta positivo (il bit di riporto viene scartato);

B. se invece vale 0 si deve effettuare un ulteriore complemento a 2 per determinare l’effettivo risultato in valore assoluto. Poiché si effettua nuovamente un complemento a 2 il risultato sarà da considerare negativo.

Somme algebriche

Page 26: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 2

Somme algebriche

12 - 1100 - 0110 + 1100 +

9 = - 1001 = 1 = 0111 =

3 0111 10011

DECIMALE BINARIO

BINARIO con complemento a 2 del sottraendo

Complemento a 2 = Complemento a 1 del sottraendo + 1

Esempio 1: si effettui la differenza 12 - 9 in binario

bit di riporto è 1, si scarta e il calcolo si conclude. Il risultato è il numero trovato

Page 27: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 2

Somme algebriche

9 - 1001 - 0011 + 1100 +

12 = - 1100 = 1 = 0100 =

- 3 0100 01101

DECIMALE BINARIO

BINARIO con complemento a 2 del sottraendo

Esempio 2: si effettui la differenza 9 - 12 in binario

Complemento a 2 = Complemento a 1 del sottraendo + 1

bit di riporto è 0, il risultato del calcolo sarà un numero negativo, si procede con il calcolo effettuando un’ulteriore complemento a 2 (il complemento a 2 si effettua scartando il riporto 0). Il risultato è espresso in valore assoluto.

Risultato parziale = 1101Risultato in valore assoluto = Complemento a 2 = Complemento a 1 + 1 = 0010 + 1 = 0011

Poiché il bit di riporto è 0 il numero risulta negativo.

Page 28: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 1

Il risultato della sottrazione tra due numeri binari A e B si ottiene sommando ad A il complemento a 1 di B più il riporto della cifra più significativa tenendo conto che:

A. se il riporto è 1 il risultato e corretto ed il calcolo si conclude. Il risultato è positivo;

B. se il riporto è 0 è necessario un’ulteriore complemento a 1. Il risultato è negativo.

Somme algebriche

Page 29: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 2

Somme algebriche

12 - 1100 - 1100 +

9 = - 1001 = 0110 =

3 10010

1

0011

DECIMALE BINARIO

BINARIO con complemento a 1 del sottraendo

Esempio 1: si effettui la differenza 12 - 9 in binario

bit di riporto è 1, indica che il risultato sarà positivo. Si sposta aggiungendolo al numero.

Page 30: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Sottrazione con complemento a 2

Somme algebriche

9 - 1001 - 1001 +

12 = 1100 = 0011 =

- 3 01100

0011

DECIMALE BINARIO

BINARIO con complemento a 1 del sottraendo

Esempio 1: si effettui la differenza 12 - 9 in binario

bit di riporto è 0, indica che il risultato sarà negativo.

Si effettua un’ulteriore complemento a 1 per ottenere il valore assoluto della differenza.

Page 31: Operazioni con numeri binari 140401174612-phpapp01

Rappresentazione dei numeri negativi

Prof. Michele MaffucciCC-BY-SA

Page 32: Operazioni con numeri binari 140401174612-phpapp01

● Quando operiamo con i numeri molto spesso non si considera significativa la dimensione del numero stesso se non per il fatto che se è molto grande bisognerà impegare più tempo per scriverlo.

● E’ importante però, quando i numeri devono essere elaborati da un dispositivo elettronico, ad es. un computer conoscere la dimensione dei numeri, in quanto questi andranno ad essere memorizzati all’interno della memoria del dispositivo (registri di memoria) che ha dimensione fissa.

● Quindi caratteristica fondamentale è la dimensione in bit dei registri di memoria, che rappresentano anche la dimensione massima del numero rappresentabile. Da ciò se ne deduce che in un computer si potranno solo utilizzare un numero finito di numeri.

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Rappresentazione dei numeri negativi

Page 33: Operazioni con numeri binari 140401174612-phpapp01

Supponiamo che il registro di memoria, il nostro contenitore, sia lungo 4 bit:

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

con 4 bit è possibile rappresentare tutti i numeri da 0 a 16

0 0 0 0

1 1 1 1

Rappresentazione dei numeri negativi

Page 34: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

I numeri possono essere sia positivi che negativi, quindi bisogna trovare un modo per rappresentare il segno:

positivo +negativo -

Una strategia che si potrebbe adottatare è quella di utilizzare 1 bit per il segno, quindi se il numero binario è costituito da N bit utilizzeremo N-1 bit per esprimere il valore assoluto del numero, chiamato anche modulo ed 1 bit per il segno (nel disegno indicato con S:

S modulo

Problema! Una simile rappresentazione rende possibile una doppia rappresentazione dello 0: +0 e -0

Rappresentazione dei numeri negativi

Page 35: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Esempio. Usando una codifica a 4 bit esprimere i numeri:

+510 = 0101

-510 = 1011

ciò comporta una (errata) doppia rappresentazione dello zero:

0000 = +010

1000 = -010

Per risolvere il problema della doppia rappresentazione dello si utilizzano i metodi di complemento a 1 e complemento a 2.

Rappresentazione dei numeri negativi

Page 36: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

La rappresentazione dei numeri binari relativi (interi con segno) avviene esprimendo il numero binario in complemento a 2, tenendo conto che il bit più significativo rappresenta il segno del numero.

Esempio: si consideri il numero relativo in base due A = 1001010 si trovi il suo equivalente in decimale.

Considerato che il bit del segno è 1 vuol dire che il numero è negativo, si complementa dapprima a 2 e poi si passa alla conversione in decimale:

A = 1001010 > A1 = 0110101 > A2 = A1 + 1 > 0110101 + 1 == 0110110 = 5410 e quindi poichè il bit del segno di A era 1 il numero convertito sarà -5410

Numeri con segno

Rappresentazione dei numeri negativi

Page 37: Operazioni con numeri binari 140401174612-phpapp01

Prof. Michele Maffucci

Operazioni con numeri binari

CC-BY-SA

Esempio: si consideri il numero in base 10 A = -310 esprimere il numero in base due supponendo un campo di esistenza di 4 bit (campo di esistenza: totale dei bit, segno più mantissa usati per esprimere il numero)

Poiché il numero è negativo, il numero in binario avrà sicuramente 1 come bit più significativo.

Si consideri il numero senza segno e se ne faccia il complemento a 2:

(3)10 = 0011 se ne fa il complemento a 1: 1100 e si somma 1:

1100 + 1 = 1101 = -310

Numeri con segno

Rappresentazione dei numeri negativi

Page 38: Operazioni con numeri binari 140401174612-phpapp01

Esercizi

Prof. Michele MaffucciCC-BY-SA

Page 39: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la somma dei seguenti numeri in base 2 il risultato ottenuto convertirlo in base 10

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

somme in binario

10011001 + 1011001100010001 + 11110110111111 + 1110011010001110 + 10111011

Page 40: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la sottrazione dei seguenti numeri in base 2 il risultato ottenuto convertirlo in base 10

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

sottrazioni in binario

1010100 - 100101101001100 - 1010110011111011 - 10000111011010011 - 110101111

Page 41: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la moltiplicazione dei seguenti numeri in base 2 il risultato ottenuto convertirlo in base 10

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

moltiplicazioni in binario

1000001 x 11011100101 x 10101010011 x 11111110101 x 10011

Page 42: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la divisione dei seguenti numeri in base 2 il risultato ottenuto convertirlo in base 10

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

divisioni in binario

111100 : 1001011111 : 1011100010 : 11101110000 : 1000

Page 43: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la differenza in complemento a 2 dei seguenti numeri in base 2.

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

sottrazione in comp. a 2

27 - 3452 - 7342 - 7637 - 48

Page 44: Operazioni con numeri binari 140401174612-phpapp01

Eseguire la differenza in complemento a 1 dei seguenti numeri in base 2.

Nella risoluzione mostrare tutti i passaggi.

Prof. Michele Maffucci

Sistemi numerici

CC-BY-SA

Esercizi

operazioni con numeri binari

sottrazione in comp. a 1

55 - 7731 - 9823 - 5118 - 73