Sistemi ed automazione Industriale Ester Franzese Istituto Tecnico Industriale Statale Majorana...

Post on 02-May-2015

223 views 2 download

Transcript of Sistemi ed automazione Industriale Ester Franzese Istituto Tecnico Industriale Statale Majorana...

Sistemi ed automazione Sistemi ed automazione IndustrialeIndustriale

Ester FranzeseEster FranzeseIstituto Tecnico Industriale Statale Istituto Tecnico Industriale Statale Majorana Majorana Cassino (FR)Cassino (FR)

Francesca FranzeseFrancesca FranzeseIstituto Istruzione Superiore Istituto Istruzione Superiore RighiRighiCassino (FR)Cassino (FR)

L’algebra di L’algebra di BooleBoole

Algebra di Algebra di BooleBoole

Contempla due costanti 00 e 11 Corrispondono a 2 stati che si escludono a vicenda Possono descrivere lo stato di apertura o chiusura di un generico

contatto o di un circuito a più contatti Si definiscono delle operazioni fra i valori booleani:

ANDAND, OROR, NOTNOT sono gli operatori fondamentali

0 1

Le operazioni AND e OR sono operazioni binarie, l’operazione NOT è unaria. Nella valutazione delle espressioni booleane esiste una relazione di precedenza fra gli operatori NOT, AND e OR, nell’ordine in cui sono stati elencati; le parentesi vengono utilizzate nel modo consueto.

NUMERO DI COMBINAZIONI

Nc = 2i Per 3 ingressi, si avranno 8 combinazioni

Per 4 ingressi, si avranno 16 combinazioni

Per 2 ingressi, si avranno 4 combinazioni

Come scrivere tutte le combinazioni

Nc = 2i = 23 = 8

Es. 3 ingressi

Si disegna una tabella con 8 righe

A B C F

1

2

3

4

5

6

7

8

Come scrivere tutte le combinazioni

Nc = 2i = 23 = 8

Es. 3 ingressi

8 / 2 = 4

Si disegna una tabella con 8 righe

Si scrivono 4 zeri nelle prime 4 caselle della prima colonna

A B C F

1 0

2 0

3 0

4 0

5

6

7

8

Come scrivere tutte le combinazioni

Nc = 2i = 23 = 8Es. 3 ingressi

Poi si divide di nuovo per 2:A B C F

1 0

2 0

3 0

4 0

5

6

7

8

4 / 2 = 2

Si procede scrivendo 2 zeri nella colonna successiva

Come scrivere tutte le combinazioni

Nc = 2i = 23 = 8Es. 3 ingressi

Poi si divide di nuovo per 2:A B C F

1 0 0 0

2 0 0

3 0

4 0

5

6

7

8

2 / 2 = 1

Si procede scrivendo 1 zero nella colonna successiva

L’operazione di L’operazione di OR (+) addizioneOR (+) addizione

Si definisce l’operazione di somma logicasomma logica (OR):

il valore della somma logica è il simbolo 1 se il valore di almeno uno degli ingressi è il simbolo 1

0

0

0

1

0+0 0+1

1

1

1

0

1+0 1+1

A B F

0 0 0

0 1 1

1 0 1

1 1 1

L’operazione di L’operazione di AND (*) AND (*) moltiplicazionemoltiplicazione

Si definisce l’operazione di prodotto logicoprodotto logico (AND):il valore del prodotto logico è il simbolo 1 se il valore di tutti gli operandi è il simbolo 1

00

0·0

11

1·1

01

1·0

10

0·1

A B F

0 0 0

0 1 0

1 0 0

1 1 1

Ordine delle operazioni

Si procede sempre con questo ordine:

Prima le moltiplicazioni e poi le addizioni

Ordine delle operazioni

Si procede sempre con questo ordine:

Prima le moltiplicazioni e poi le addizioni

Esempio: F= A * B + C

Esempio: F= A * (B+C) SE CI SONO LE PARENTESI SI FANNO PRIMA LE OPERAZIONI NELLE

PARENTESI

ESEMPI CONTI CON TABELLE

Esempio: F= A * B + B

A B A*B (A*B) + B

0 0 0

0 1 0

1 0 0

1 1 1

ESEMPI CONTI CON TABELLE

Esempio: F= A * B + B

A B A*B (A*B) + B

0 0 0 0

0 1 0 1

1 0 0 0

1 1 1 1

B

A B

ESEMPI CONTI CON TABELLE

Esempio: F= A * B + C

A B C (A*B) F

1 0 0 0

2 0 0 0

3 0 1 0

4 0 1 0

1 0 0

1 0 0

1 1 0

1 1 1

ESEMPI CONTI CON TABELLE

Esempio: F= A * B + C

A B C (A*B) F

1 0 0 0 0

2 0 0 1 0

3 0 1 0 0

4 0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 1

ESEMPI CONTI CON TABELLE

Esempio: F= A * B + C

A B C (A*B) F

1 0 0 0 0

2 0 0 1 0 1

3 0 1 0 0

4 0 1 1 0 1

1 0 0 0

1 0 1 0 1

1 1 0 1 1

1 1 1 1 1

C

A B

ESERCIZI SCHEMI ELETTRICI

F =A+C*B

B C

* = AND = SERIE

ESERCIZI SCHEMI ELETTRICI

A

B C

F =A+C*B

B C

* = AND = SERIE

+ = OR = PARALLELO

ESERCIZI SCHEMI ELETTRICI

F = (A*B+C)+A

C

B A

A

B A

* = AND = SERIE

ESERCIZI SCHEMI ELETTRICI

F = (A*B+C)+A

C

B A

A

B A

C

* = AND = SERIE

+ = OR = PARALLELO

ESERCIZI SCHEMI ELETTRICI

F = (A*B+C)+A

C

B A

A

B A

C

* = AND = SERIE

+ = OR = PARALLELO

A

ESERCIZI SCHEMI ELETTRICI

F = B * (A+B) +A

B

A B

A

B

A

ESERCIZI SCHEMI ELETTRICI

F = B * (A+B) +A

B

A B

A

B

A B

ESERCIZI SCHEMI ELETTRICI

F = B * (A+B) +A

B

A B

A

ESERCIZI SCHEMI ELETTRICI

F =A+C*B

F = (A*B+C)+A

F = B * (A+B) +A

A

B C

C

B A

A

B

A B

A

La negazione La negazione NOTNOT

Si definisce l’operatore di negazionenegazione (NOT):l’operatore inverte il valore della costante su cui opera

0 = 11 = 0

dalla definizione…

0 = 01 = 1

L’elemento x = NOT(x) viene detto complemento di x. Il

complemento è unico.

doppia negazione

Alcune identitàAlcune identità

x + 1 = 1x + 0 = x

x + x = x

x·1 = xx·0 = 0

x·x = x

x·1 = x

1·1 = 10·1 = 0

x = 0 x = 1

OK!OK!

Si verificano le uguaglianze

Ad esempio….

0 è l’elemento neutroelemento neutro per l’operazione di OR; 1 è l’elemento neutro per l’AND. Gli elementi neutri sono unici. La legge x + x = x·x = x è detta legge dell’idempotenzalegge dell’idempotenza.

Per gli operatori AND e OR valgono le seguenti proprietà:

Per l’operatore NOT si provano le seguenti identità:

Altre proprietàAltre proprietà

commutativacommutativa x1+x2 = x2+x1 x1·x2 = x2·x1

associativaassociativa x1+x2+x3 = x1+(x2+x3) x1·x2·x3 = x1·(x2·x3)

distributivadistributiva x1·x2+x1·x3 = x1·(x2+x3)

x + x = 1x · x = 0

x = x

Una variabile y è una funzione delle n variabili indipendenti x1, x2,…, xn, se esiste un criterio che fa corrispondere in modo univoco ad ognuna delle 2n configurazioni delle x un valore di y

Una rappresentazione esplicita di una funzione è la tabella di veritàtabella di verità, in cui si elencano tutte le possibili combinazioni di x1,

x2 , …, xn, con associato il valore di y

Funzioni logicheFunzioni logiche

y = F(x1,x2,…,xn)

Somma di due ingressi

x1 x2 y0 0 00 1 11 0 11 1 1

y = x1+x2

Una tabella di veritàUna tabella di verità

Date 3 variabili booleane (A,B,C) si scrive la funzione F che vale 1 quando solo due di esse hanno valore 1

A B C F0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 0

Si può scrivere la funzione come somma logica delle configurazioni corrispondenti agli 1

F(A,B,C) = A·B·C + A·B·C + A·B·C

Forma canonica: somma di prodotti (OR di AND)Forma canonica: somma di prodotti (OR di AND) tutte le funzioni logiche si possono scrivere in questa forma

Un esempio: lo Un esempio: lo XORXOR

La funzione XOR verifica la disuguaglianza di due variabili

L’espressione come somma di prodotti è quindi

x1 x2 XOR0 0 00 1 11 0 11 1 0

XOR = x1·x2 + x1·x2

La legge dell’assorbimento legge dell’assorbimento x1+ x1· x2 = x1Le leggi di De Morgan leggi di De Morgan

(x1+ x2)' = x1’· x2’ ( x1 · x2)’ = x1’+ x2’ ( ’ un modo alternativo per indicare la negazione). Dalle leggi di De Morgan si evince che la scelta delle funzioni OR, AND e

NOT, come funzioni primitive, è ridondante. L’operazione logica AND può essere espressa in funzione delle operazioni OR e NOT; in modo analogo, l’operazione OR può essere espressa tramite AND e NOT.

Le relazioni stabilite sono generalmente applicate nelle trasformazioni di funzioni booleane in altre equivalenti, ma di più facile realizzazione circuitale.

ESEMPIESEMPI

Un circuito con due interruttoriUn circuito con due interruttori

I due interruttori corrispondono a due variabili (A,B) a valori booleani le variabili assumono i due valori 0 e 1 che corrispondono alle due posizioni dell’interruttore

A B

A B0

11

0

A B

A B0

11

0

A B

A B0

11

0

A B

A B0

11

0

A=0 B=0 A=0 B=1

A=1 B=1A=1 B=0

A B L

0 0 10 1 01 0 01 1 1

L = A·B+A·B

L

LL

L

EsercizioEsercizio

Progettare un circuito per accendere e spegnere una lampada da uno qualsiasi di tre interruttori indipendenti

A B C

1 1 1

0 0 0

A B C

1 1

0

1

0 0

0 00

0 01

Cambia lostato di uninterruttorequalsiasi

L = 0

L = 1

Analisi delle combinazioniAnalisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta

A B C

0 00

L = 0

L = 1A B C

0 10

A B C

1 10

L = 0

L = 0

A B C

1 11

L = 10 11

A B CL = 0

Chiudo prima l’interruttore c

Analisi delle combinazioniAnalisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta

A B C

0 00

L = 0

A B C

0 01

L = 1

L = 0A B C

1 01

A B C

1 11

L = 10 11

A B CL = 0

Analisi delle combinazioniAnalisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta

A B C

0 00

L = 0

A B C

1 00

L = 1

A B C

1 10

L = 0

L = 0A B C

1 01

A B C

1 11

L = 1

Analisi delle combinazioniAnalisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta

A B C

0 00

L = 0

L = 1A B C

0 10

A B C

0 01

L = 1

A B C

1 00

L = 1

A B C

1 10

L = 0

L = 0A B C

1 01

A B C

1 11

L = 10 11

A B CL = 0

Scrittura della funzione logicaScrittura della funzione logica

Dalle otto combinazioni si ottiene la tabella di veritàtabella di verità della funzione logica

Si può scrivere la funzione L come somma logica di prodotti logicisomma logica di prodotti logici A B C L0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1

L = A·B·C + A·B·C + A·B·C + A·B·C

Come collegare gli interruttoriCome collegare gli interruttori

Si può manipolare l’espressione di L usando la proprietà distributiva dell’AND rispetto all’OR

L = A·(B·C + B·C) + A·(B·C + B·C)

L = A·B·C + A·B·C + A·B·C + A·B·C

A

A

B

B

C

C

C

CB

B A

A

B

B

C

C

C

CB

B

1 0 0 1 0 1

Sistemi di Sistemi di numerazionenumerazione

Sistemi di numerazioneSistemi di numerazione

Sistemi di numerazione posizionaliposizionali:La basebase del sistema di numerazioneLe cifrecifre del sistema di numerazione

Il numero è scritto specificando le cifre in ordine, ed il valore dipende dalla posizione relativaposizione relativa delle cifre

Esempio: Il sistema decimale (Base 10)

Cifre : 0 1 2 3 4 5 6 7 8 9

5641 = 5·103 + 6·102 + 4·101 + 1·100

Posizione: 3 2 1 0

Sistemi in base BSistemi in base B

La base definisce il numero di cifre diverse nel sistema di numerazione

La cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1,2,…,B1; se B>10 occorre introdurre B

10 simboli in aggiunta alle cifre decimali

N = cnBn+cn-1Bn-1+…+c2B2+c1B1+c0B0

Un numero frazionariofrazionario N’ si rappresenta con la scrittura (0,c1c2…cn)B

Un numero interointero N si rappresenta con la scrittura (cncn-1…c2c1c0)B

N’ = c1B-1+c2B-2+…+cnB-n

cn è la cifra più significativacifra più significativa, c0 quella meno significativameno significativa

Numeri interi senza segnoNumeri interi senza segno

Con n cifre, in base B, si rappresentano tutti i numeri interi positivi da 0 a Bn1 (Bn numeri distinti)

Esempio: base 10

2 cifre: da 0 a 1021 = 99

000102….9899

Esempio: base 2

2 cifre: da 0 a 221 = 3

00011011

102 = 100 valori

22 = 4 valori

Il sistema binario (B=2)Il sistema binario (B=2)

La base 2 è la più piccola per un sistema di numerazioneLa base 2 è la più piccola per un sistema di numerazione

Cifre: 0 1 bitbit (binary digitbinary digit)

Esempi:

(101101)2 = 1 *25 + 0* 24 + 1* 23 + 1* 22 + 0* 21 + 1* 20 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10

(0,0101)2 = 0 2-1 + 1 2-2 + 0 2-3 + 1 2-4 = 0 + 0,25 + 0 + 0,0625 = (0,3125)10

(11,101)2 = 1 21 + 1 20 + 1 2-1 + 0 2-2 + 1 2-3 = 2 + 1 + 0,5 + 0 + 0,125 = (3,625)10

FormaFormapolinomipolinomiaa

Un bytebyte è un insieme di 8 bit (un numero binario a 8 cifre)

Con un byte si rappresentano i numeri interi fra 0 e 281 = 255

Il byte è l’elemento base con cui si rappresentano i dati nei calcolatori. Si utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte (16 bit) , 4 byte (32 bit), 8 byte (64 bit)…

Dal bit al byteDal bit al byte

b7b6b5b4b3b2b1b0

00000000000000010000001000000011…………….1111111011111111

28 = 256 valori distinti

Dal byte ai kilobyteDal byte ai kilobyte

Potenze del 2

Cosa sono i Kb (Kilobyte), Mb (Megabyte), Gb (Gigabyte) ?

24 = 1628 = 256216 = 65536

210 = 1024 (K=Kilo a x 10 3)220 = 1048576 (M=Mega a x 10 6 )230 = 1073741824 (G=Giga a x 10 9)

1 Kb = 210 byte = 1024 byte1 Mb = 220 byte = 1048576 byte1 Gb = 230 byte = 1073741824 byte1 Tb = 240 byte = 1099511627776 byte (Terabyte)

Da decimale a binario Da decimale a binario 1 1

Si divide ripetutamente il numero interointero decimale per 2 fino ad ottenere un quoziente nullo. Le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è l’ultimo resto

Esempio: convertire in binario (43)10

43 : 2 = 21 + 121 : 2 = 10 + 110 : 2 = 5 + 0 5 : 2 = 2 + 1 2 : 2 = 1 + 0 1 : 2 = 0 + 1

resti

bit più significativo

(43)10 = (101011)2

Si moltiplica ripetutamente il numero frazionariofrazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte. Le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione

Da decimale a binario Da decimale a binario 2 2

Esempio: convertire in binario (0.21875)10 e (0.45)10

.45 2 = 0.9

.90 2 = 1.8

.80 2 = 1.6

.60 2 = 1.2

.20 2 = 0.4 etc.

(0.45)10 (0.01110)2

.21875 2 = 0 .4375

.4375 2 = 0.875

.875 2 = 1.75

.75 2 = 1.5

.5 2 = 1.0

(0.21875)10 = (0.00111)2

Da binario a decimaleDa binario a decimale

Oltre all’espansione esplicita in potenze del 2 forma polinomiaforma polinomia…

…si può operare nel modo seguente: si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo

Esempio: convertire in decimale (101011)2

bit più significativo

(101011)2 = 1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20 = (43)10

1 x 2 = 2 + 0 2 x 2 = 4 + 1 5 x 2 = 10 + 0 10 x 2 = 20 + 1 21 x 2 = 42 + 1 = 43

(101011)2 = (43)10

EsercizioEsercizio

Si verifichino le seguenti corrispondenze:

(110010)2=(50)10

(1110101)2=(102)10

(1111)2=(17)10

(11011)2=(27)10

(100001)2=(39)10

(1110001110)2=(237)10

Sistema esadecimaleSistema esadecimale

La base 16 è molto usata in campo informaticoLa base 16 è molto usata in campo informatico

Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F

Esempio:

(3A2F)16 = 3 163 + 10 162 + 2 161 + 15 160 = 3 4096 + 10 256 + 2 16 + 15 = (14895)10

La corrispondenza in decimale delle cifre oltre il 9 è

A = (10)10 D = (13)10

B = (11)10 E = (14)10

C = (12)10 F = (15)10

Da binario a esadecimaleDa binario a esadecimale

Una cifra esadecimale corrisponde a 4 bit

Si possono rappresentare numeri binari lunghi con poche cifre (1/4). La conversione da binario ad esadecimale è immediata, raggruppando le cifre binarie in gruppi di 4 e sostituendole con le cifre esadecimali secondo la tabella precedente

0000 0 1000 80001 1 1001 90010 2 1010 A0011 3 1011 B0100 4 1100 C0101 5 1101 D0110 6 1110 E0111 7 1111 FF corrisponde a 4 bit a 1

0 corrisponde a 4 bit a 0

Dai bit all’hexDai bit all’hex

Un numero binario di 4n bit corrisponde a un numero esadecimale di n cifre

Esempio: 32 bit corrispondono a 8 cifre esadecimali

1101 1001 0001 1011 0100 0011 0111 1111 D 9 1 B 4 3 7 F

(D91B437F)16

Esempio: 16 bit corrispondono a 4 cifre esadecimali

0000 0000 1111 1111 0 0 F F

(00FF)16

Da esadecimale a binarioDa esadecimale a binario

La conversione da esadecimale a binario si ottiene espandendo ciascuna cifra con i 4 bit corrispondenti

Esempio: convertire in binario il numero esadecimale 0x0x0c8f

Notazione usata in molti linguaggi di programmazione per rappresentare numeri esadecimali 0x0x

0 c 8 f 0000 1100 1000 1111

Il numero binario ha 4 x 4 =16 bit

La rappresentazione dei datiLa rappresentazione dei dati e l’aritmetica degli e l’aritmetica degli

elaboratorielaboratori

Numeri con segnoNumeri con segno

Per rappresentare numeri con segno in binario, occorre utilizzare 1 bit per definire il segno del numero

Si possono usare 3 tecniche di codifica

Modulo e segno Complemento a 2 Complemento a 1

Modulo e segnoModulo e segno

Il bit più significativo rappresenta il segno: 0 per i numeri positivi, 1 per quelli negativi

Esiste uno zero positivo (00…0) e uno zero negativo (10…0) Se si utilizzano n bit si rappresentano tutti i numeri compresi fra

(2n-11) e +2n-11

Esempio: con 4 bit si rappresentano i numeri fra 7 ((231)) e +7 (231)

0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 -01001 -11010 -21011 -31100 -41101 -51110 -61111 -7

positivi negativi

Complemento a 2Complemento a 2

Il complemento a 2 di un numero binario (N)2 a n cifre è il numero

Tale numero si ottieneEffettuando il complemento a 1 di ogni cifra del numero di partenza: si trasforma ogni 0 in 1 e ogni 1 in 0Aggiungendo 1 al numero ottenuto

Oppure: a partire da destra, lasciando invariate tutte le cifre fino al primo 1 compreso, quindi invertendo il valore delle rimanenti

2n(N)2 = 10……0(N)2

n

01010111

10101000

10101001

complemento a 1

+ 1

100000000

011111111 01010111 10101000

10101001

28

281N281N

281N+1

Interi in complemento a 2Interi in complemento a 2

I numeri positivinumeri positivi sono rappresentati in modulo e segno I numeri negativinumeri negativi hanno un 1 nella posizione più significativa e sono

rappresentati in complemento a 2 Lo zero è rappresentato come numero positivo (con una sequenza di n

zeri) Il campo dei numeri rappresentabili è da 2n-1 a +2n-11

Ad esempio: numeri a 4 cifre

0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 -81001 -71010 -61011 -51100 -41101 -31110 -21111 -1

Nota: 0111 +7 1000 -8

Interi a 16 bitInteri a 16 bit

Consideriamo numeri interi rappresentati su 16 bit in complemento a 2

Il più grande numero intero positivo 2151=(32767)10

0111 1111 1111 11110x 7 F F F

Il più piccolo numero intero negativo -215=(-32768)10

1000 0000 0000 00000x 8 0 0 0

0111 1111 1111 1111 + 1 1000 0000 0000 0000

Il numero intero –1 è rappresentato come

1111 1111 1111 11110x F F F F

0000 0000 0000 0000 + 1 0000 0000 0000 0001

Addizione binariaAddizione binaria

Le regole per l’addizione di due bit sono

L’ultima regola è…. (1)2+(1)2 = (10)2 … (1+1=2)10 !!

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

Esempio1 11 101011011+0101101010110101

riporti

181

91+90

Sottrazione binaria Sottrazione binaria 1 1

Le regole per la sottrazione di due bit sono

Il calcolo della sottrazione può divenire complicato: quando si ha una richiesta sulla cifra precedente a sinistra, che è uno 0, l’operazione si propaga a sinistra fino alla prima cifra ad 1 del sottraendo

0 0 = 0 1 0 = 1 1 1 = 010 1 = 0 con prestito di 1 dalla cifra precedente a sinistra

Esempio 0 10 1 1 0 0 1 1 0 11 0 1 0 0 20

25 5

Sottrazione binaria Sottrazione binaria 2 2

Utilizzando la rappresentazione in complemento a 2, addizione e sottrazione sono trattate come una unica operazione

N1N2 = N1+(2nN2)2n

complemento a 2 di N2 (-N2)

si trascura il bit n +1

Si calcola il complemento a 2 di N2

Si somma N1 con il complemento a 2 di N2

Si trascura il bit più significativo del risultato

Esempio: (010001)2(000101)2 = (17)10(5)10

010001 + 1110111001100 (12)10

Sono utili perché l’operazione di somma può essere realizzata non curandosi in modo particolare del bit di segno

In complemento a 1 (più semplice da calcolare)…Zero ha due rappresentazioni 00000000 e 11111111La somma bit a bit funziona “quasi sempre”

In complemento a 2…Zero ha una sola rappresentazioneLa somma bit a bit funziona sempre

Rappresentazioni in complementoRappresentazioni in complemento

11001 + (-6)

11010 = (-5)

1001110011 (-12)

00110 + (6)

10101 = (-10)

11011 (-4)

OverflowOverflow

L’overflowoverflow si ha quando il risultato di un’operazione non è rappresentabile correttamente con n bit

Per evitare l’overflow occorre aumentare il numero di bit utilizzati per rappresentare gli operandi C’è overflow se c’è riporto al di fuori del bit di segno e non sul bit di segno, o se c’è riporto sul bit di segno, ma non al di fuori

01110 +0101011000

Esempio: 5 bit [-16,+15]

14 +1024

11000 + 10110101110

-8 +-10-18-8 +14

Punteggio nei vecchi videogame… sorpresa per i campioni!

0111 1111 1111 1111 + 1 = 1000 0000 0000 0000 32767 + 1 = -32768

Moltiplicazione binariaMoltiplicazione binaria

Le regole della moltiplicazione di 2 bit sono

Moltiplicare per 2n corrisponde ad aggiungere n zeri in coda al moltiplicando

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

Esempio 1100111 x 101 1100111 0000000 11001111000000011

110011 x 10000 = 11001100000000x 16 = 24

La divisione binaria di A per B viene calcolata in modo analogo alla divisione decimale, così da ottenere un quoziente Q ed un resto R, tali che A = BQ + R

La divisione binaria si compone di una serie di sottrazioni

Dividere per 2n equivale a scorrere il numero a destra di n posizioni; le cifre scartate costituiscono il resto

Divisione binariaDivisione binaria

1 1 0 1 1 0 1 0 11 0 1 1 0 1 0 1 1 1

1 0 1 1 0 0

(

^^^

54 = 510 + 4

110011 10000 = 11 con resto 11

Codifica dei caratteri alfabeticiCodifica dei caratteri alfabetici

Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli) Gli elaboratori elettronici trattano numeri Si codificano i caratteri e i simboli per mezzo dei numeri Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica

Quando si scambiano dati deve essere noto il tipo di codifica utilizzato In genere un sistema informatico deve supportare più standard di codifica La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (æ, ã, ë, è, …)

A 01000001

3 00110011

$ 00100100

Codifica ASCIICodifica ASCII

American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange Definisce una tabella di corrispondenza fra ciascun carattere e

un codice a 7 bit7 bit (128 caratteri) I caratteri, in genere, sono rappresentati con 1 byte1 byte (8 bit). I

caratteri con il bit più significativo a 1 (quelli con codice dal 128 al 255) fanno parte di una estensione della codifica

La tabella comprende sia caratteri di controllocaratteri di controllo (codici da 0 a 31) che caratteri stampabilicaratteri stampabili

I caratteri alfabetici hanno codici ordinati secondo l’ordine alfabetico

A 65B 66…….Y 89Z 90

a 97b 98…….y 121Z 122

0 481 49…….8 569 57

cifre maiuscole minuscole

Caratteri di controllo ASCIICaratteri di controllo ASCII

I caratteri di controllo (codice da 0 a 31) hanno funzioni speciali Si ottengono o con tasti specifici o con una sequenza Ctrl + carattereCtrl + carattere

Ctrl Dec Hex Code Nota^@ 0 0 NULL carattere nullo^A 1 1 SOH partenza blocco….. …. …. …… …………………^G 7 7 BEL beep^H 8 8 BS backspace^I 9 9 HT tabulazione orizzontale^J 10 A LF line feed (cambio linea)^K 11 B VT tabulazione verticale^L 12 C FF form feed (alim. carta)^M 13 D CR carriage return (a capo)…… …. … …. …………………….^Z 26 1A EOF fine file^[ 27 1 B ESC escape…. …. ….. ….. ………..^_ 31 1F US separatore di unità

Caratteri ASCII stampabiliCaratteri ASCII stampabili

Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr

32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q34 22 ” 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v39 27 ’ 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL

NotaNota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. ‘5’ - ‘0’ = 53-48 = 5)

Tabella ASCII estesaTabella ASCII estesa

I codici oltre il 127 non sono compresi nello standard originario

Codifica UNICODECodifica UNICODE

È lo standard emergente per la codifica dei caratteri nei testi. È basato sulle caratteristiche del codice ASCII, ma supera la limitazione di poter rappresentare in modo coerente solo l’alfabeto latino

Fornisce un unico codice per ogni carattere di ogni lingua scrittaunico codice per ogni carattere di ogni lingua scritta, indipendentemente dalla piattaforma, dal linguaggio o dal programma

Lo standard iniziale prevedeva di codificare i caratteri con 16 bit, per un totale di oltre 65000 caratteri rappresentabili

La versione 3.0 dello standard fornisce i codici per 4919449194 caratteri, derivati dagli alfabeti usati nel mondo, dagli insiemi di ideogrammi, dalle collezioni di simboli

L’ultima versione dello standard definisce 3 tipi diversi di codifica che permettono agli stessi dati di essere trasmessi in byte (8 bit UTF-8UTF-8), word (16 bit UTF-16UTF-16) o double word (32 bit UTF-32UTF-32). Tutte le codifiche presuppongono, al più, l’utilizzo di 32 bit per carattere