Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1...

23
Informatica 3 Codifica binaria

Transcript of Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1...

Page 1: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Informatica 3

Codifica binaria

Page 2: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Il sistema binario

• Il calcolatore opera solo con due cifre: 0 e 1• Tutta l’informazione che un calcolatore

elabora viene espressa con queste due cifre, per mezzo della codifica binaria

Page 3: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Numerazione: le basi

• Noi siamo abituati a una numerazione basata su 10 cifre: da 0 a 9

• La base della nostra numerazione è il 10:147 = 7 x 100 + 4 x 101 + 1 x 102

• La base del sistema binario è il 2:1011 = 1 x 20 + 1 x 21 + 0 x 22 + 1 x 23 Se si svolge il calcolo si ottiene il numero che, in base 10, corrisponde a 1011 in base 2.

Page 4: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Base 2 -> Base 10

• 10112, ossia 1011 in base 2, a che numero in base 10 corrisponde?

• Stiamo cercando la x tale che: 10112 = x10

• Basta ricordarsi la definizione di base 2:1011 = 1 x 20 + 1 x 21 + 0 x 22 + 1 x 23 = 11

• Perciò 1011 in base 2 vuol dire 11 in base 10:10112 = 1110

• Il “nostro” 11 è per il calcolatore 1011

Page 5: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Base 10 -> Base 2

• Il metodo per esprimere in base 2 un numero dato in base 10 è il seguente

• Cerchiamo la x tale che: 2510 = x2

• Si procede con una sequenza di divisioni per 2, fintantoché il quoziente non diventa 0, e scrivendo la sequenza dei resti in ordine inverso

Page 6: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Come si scrive 25 in base 2?

• 25 : 2 = 12 con resto 1• 12 : 2 = 6 con resto 0• 6 : 2 = 3 con resto 0• 3 : 2 = 1 con resto 1• 1 : 2 = 0 con resto 1• Una volta ottenuto il quoziente pari a 0,

scriviamo i resti in ordine inverso:2510 = 110012

Page 7: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Verifica del metodo

• 11001 è davvero la codifica in base 2 di 25?• Basta svolgere i calcoli basati sulla definizione

di sistema binario• 110012 = 1 x 20 + 1 x 23 + 1 x 24 = 1 + 8 + 16 =

2510 (gli addendi con lo 0 sono stati omessi perché ovviamente non influiscono sulla somma)

Page 8: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Numeri binari in memoria

• In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come parole) di lunghezza fissa dipendente dalla struttura del calcolatore stesso.

• Ad esempio, una parola di 4 bit può contenere il numero 01012

0 01 1

Page 9: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Combinazioni possibili di numeri

• Una parola di 4 bit può contenere 24 = 16 numeri binari diversi: da 0000 a 1111

• In generale, una parola di n bit può contenere 2n numeri binari diversi

Page 10: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Interpretazioni possibili dei numeri

• Se non ci preoccupiamo del segno dei numeri, e li consideriamo sempre positivi, la sequenza che va da 00002 a 11112 corrisponde ai numeri da 010 a 1510

• In generale, data una parola da n bit e interpretando i numeri binari come numeri senza segno, solo positivi, i numeri esprimibili con tale parola vanno da 0 a 2n-1

Page 11: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Numeri con segno

• Se vogliamo introdurre anche i numeri negativi, una possibililità è di usare il primo bit a sinistra per esprimere il segno del numero: 0 sta per +, 1 sta per meno

• Con questa convenzione, chiamata “modulo e segno”, 10102 = -210, e 01112 = 710

• In generale, con una parola di n bit si possono esprimere i numeri compresi tra –(2n-1 – 1) e 2n-1 – 1

Page 12: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Complemento a due

• La rappresenazione “modulo e segno” ha un inconveniente: ci sono due rappresentazioni per 010: ad esempio, se si hanno parole da 4 bit, sia 00002 sia 10002 corrispondono a 010

• Con la rappresentazione “in complemento a due” si ovvia a questo problema: 010 si rappresenta solo con 00002, +110 come al solito con 00012 mentre per ottenere la rappresentazione binaria di -110, si procede come segue

Page 13: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Da numero positivo a negativo (1)

• Data la rappresentazione binaria di +110:

00012

• La rappresentazione di si ottiene così:– si invertono tutti i bit– si somma 1

• Quindi, la rappresentazione in complemento a due di -110 è:

11112

Page 14: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Da numero positivo a negativo (2)

• Analogamente per +210:00102

• La rappresentazione in complemento a 2 di per -210 è:11102

• E così via fino a utilizzare tutte le configurazioni di bit possibili della parola

• Con una parola da n bit, in complemento a due si possono rappresentare i numeri compresi tra tra –2n-1 e 2n-1 – 1 (da notare che c’è un numero in più grazie al fatto che 010 ha un’unica rappresentazione)

Page 15: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Metodo alternativo

• L’inversione di tutti i bit e la somma di 1 costituiscono un metodo per scoprire, dato un numero positivo +n2, la codifica binaria del suo opposto: –n2 (o anche viceversa: dato -n2, scoprire +n2)

• In alternativa, si può usare la seguente regola:partendo da destra, lascia tutto intatto fino al primo ‘1’ incluso, poi inverti tutto il resto

Page 16: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Somma di numeri binari

• Sui numeri binari si effettuano le classiche operazioni aritmetiche esattamente come per i numeri in base 10

• In particolare, la somma si esegue bit per bit, con le seguenti regole:0 + 0 = 01 + 0 = 0 + 1 = 11 + 1 = 0 con carry (o riporto) di 1 a sinistra

Page 17: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Overflow

• Si ha un overflow quando si sommano 2 numeri contenuti in parole da n bit e il risultato non riesce ad essere rappresentato in n bit

• Ad esempio:0111 +0110 =1101

Questa somma non è valida perché sommando due numeri positivi su 4 bit si ottiene un numero negativo, il che è assurdo. Il risultato corretto sarebbe 01101 ma per poterlo rappresentare servono 5 bit invece che 4. Una tecnica per controllare se c’è overflow è di vedere i riporti alla posizione più a sinistra e della posizione a sinistra di essa (vedi le stelle): se i riporti sono diversi c’è overflow. In questo caso c’è riporto alla posizione del quarto bit da destra ma non alla sua sinistra, e infatti c’è overflow.

Page 18: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Sottrazione

• Con il complemento a due, la sottrazione non è altro che sommare con un numero negativo

• 6 – 4 equivale a calcolare 6 + (-4):610 = 01102

410 = 01002

-410 = 11002

210 = 00102

Page 19: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Circuiti logici (1)

• Congiunzione, ANDIN1 IN2 OUT= IN1 AND IN2

0 0 0

0 1 0

1 0 0

1 1 1

IN1

IN2

OUT

Page 20: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Circuiti logici (2)

• Disgiunzione, ORIN1 IN2 OUT= IN1 OR IN2

0 0 0

0 1 1

1 0 1

1 1 1

IN1

IN2

OUT

Page 21: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Circuiti logici (3)

• Disgiunzione esclusiva, XORIN1 IN2 OUT= IN1 XOR IN2

0 0 0

0 1 1

1 0 1

1 1 0

IN1

IN2

OUT

Page 22: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Circuiti sommatori (1)

• Half-adder (A+B = Somma con Carry)

Page 23: Informatica 3 Codifica binaria. Il sistema binario Il calcolatore opera solo con due cifre: 0 e 1 Tutta linformazione che un calcolatore elabora viene.

Circuiti sommatori (2)

• Full-adder (A+B+Carry in ingresso = Somma con Carry in uscita)