Sistemi ed automazione
Industriale
Ester Franzese
Istituto Tecnico Industriale Statale
Majorana
Cassino (FR)
Francesca Franzese
Istituto Istruzione Superiore
Righi
Cassino (FR)
L’algebra di Boole
Algebra di Boole




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.
Contempla due costanti 0 e 1
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:
AND, OR, NOT sono gli operatori fondamentali
0
1
NUMERO DI COMBINAZIONI
Per 2 ingressi, si avranno
4 combinazioni
Nc =
i
2
Per 3 ingressi, si avranno
8 combinazioni
Per 4 ingressi, si avranno
16 combinazioni
Come scrivere tutte le combinazioni
Es. 3 ingressi
Nc =
i
2=
3
2 =
8
Si disegna una tabella con 8 righe
A
1
2
3
4
5
6
7
8
B
C
F
Come scrivere tutte le combinazioni
Es. 3 ingressi
Nc =
8 / 2
i
2=
3
2 =
8
Si disegna una tabella con 8 righe
A
=
4
Si scrivono 4 zeri nelle prime 4 caselle
della prima colonna
B
1
0
2
0
3
0
4
0
5
6
7
8
C
F
Come scrivere tutte le combinazioni
Es. 3 ingressi
Nc = 2 i = 2 3 = 8
Poi si divide di nuovo per 2:
A
4 / 2 = 2
Si procede scrivendo 2
zeri nella colonna
successiva
B
1
0
2
0
3
0
4
0
5
6
7
8
C
F
Come scrivere tutte le combinazioni
Es. 3 ingressi
Nc = 2 i = 2 3 = 8
Poi si divide di nuovo per 2:
A
2 / 2 = 1
Si procede scrivendo 1
zero nella colonna
successiva
B
C
1
0
0
2
0
0
3
0
4
0
5
6
7
8
F
0
L’operazione di OR (+) addizione

Si definisce l’operazione di somma logica (OR):
il valore della somma logica è il simbolo 1 se il valore di
almeno uno degli ingressi è il simbolo 1
A
B
F
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0+0
0+1
1
1
0
1
1+0
1+1
L’operazione di AND (*) moltiplicazione

Si definisce l’operazione di prodotto logico (AND):
il valore del prodotto logico è il simbolo 1 se il valore di tutti
gli operandi è il simbolo 1
A
B
F
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0·0
0·1
0
1
1·0
1
1
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
0
0
0
0
1
0
1
0
0
1
1
1
(A*B) + B
ESEMPI CONTI CON TABELLE
B
Esempio: F= A * B + B
A
A
B
A*B
(A*B) + B
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
B
ESEMPI CONTI CON TABELLE
Esempio: F= A * B + C
A
B
C
(A*B)
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
F
ESEMPI CONTI CON TABELLE
Esempio: F= A * B + C
A
B
C
(A*B)
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
F
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
1
0
1
1
1
1
1
1
1
C
1
A
1
B
ESERCIZI SCHEMI ELETTRICI
*
F =A+C*B
B
C
= AND = SERIE
ESERCIZI SCHEMI ELETTRICI
*+
F =A+C*B
A
B
C
= AND = SERIE
= OR = PARALLELO
ESERCIZI SCHEMI ELETTRICI
F = (A*B+C)+A
*
= AND = SERIE
A
C
B
A
B
A
ESERCIZI SCHEMI ELETTRICI
F = (A*B+C)+A
= OR = PARALLELO
A
C
B
*+
= AND = SERIE
C
A
B
A
ESERCIZI SCHEMI ELETTRICI
F = (A*B+C)+A
A
= OR = PARALLELO
A
C
B
*+
= AND = SERIE
C
A
B
A
ESERCIZI SCHEMI ELETTRICI
F = B * (A+B) +A
A
B
B
A
A
B
ESERCIZI SCHEMI ELETTRICI
F = B * (A+B) +A
A
B
B
A
A
B
B
ESERCIZI SCHEMI ELETTRICI
F = B * (A+B) +A
B
A
A
B
ESERCIZI SCHEMI ELETTRICI
A
F =A+C*B
B
C
A
C
F = (A*B+C)+A
B
A
F = B * (A+B) +A
B
A
B
A
La negazione NOT

Si definisce l’operatore di negazione (NOT):
l’operatore inverte il valore della costante su cui opera
0 = 1
1 = 0
dalla definizione…
doppia negazione
0 = 0
1 = 1
L’elemento x = NOT(x)
viene detto
complemento di x. Il
complemento è unico.
Alcune identità

0 è l’elemento 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’idempotenza.
Si verificano le uguaglianze
x + 1 = 1
x + 0 = x
x + x = x

x·1 = x
x·0 = 0
x·x = x
Ad esempio….
x·1 = x
x= 1
x= 0
0·1 = 0
1·1 = 1
OK!
Altre proprietà

Per gli operatori AND e OR valgono le seguenti proprietà:
commutativa x1+x2 = x2+x1
x1·x2 = x2·x1
associativa
x1+x2+x3 = x1+(x2+x3) x1·x2·x3 = x1·(x2·x3)
distributiva
x1·x2+x1·x3 = x1·(x2+x3)

Per l’operatore NOT si provano le seguenti identità:
x + x = 1
x · x = 0
x = x
Funzioni logiche

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
y = F(x1,x2,…,xn)

Una rappresentazione esplicita di una funzione è
la tabella di verità, in cui si elencano tutte le
possibili combinazioni di x1, x2 , …, xn, con
associato il valore di y
Somma di due ingressi
x1
y = x1+x2
0
0
1
1
x2
0
1
0
1
y
0
1
1
1
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
Si può scrivere la
funzione
come
somma logica delle
configurazioni
corrispondenti agli 1
A
B C
F
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
F(A,B,C) = A·B·C + A·B·C + A·B·C
Forma canonica: somma di prodotti (OR di AND)
 tutte le funzioni logiche si possono scrivere in questa forma
Un esempio: lo XOR

La funzione XOR verifica la disuguaglianza di due
variabili
x1
0
0
1
1

x2 XOR
0
1
0
1
0
1
1
0
L’espressione come somma di prodotti è quindi
XOR = x1·x2 + x1·x2
ESEMPI
La legge dell’assorbimento x1+ x1· x2 = x1
Le 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.
Un 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
A
0
0
1
1
B
L
A
A
B
A=0 B=0
A
A
0
0
1
1
B
B
A=1 B=0
L
A
A
0
0
1
1
B
L
B
A
B
L
A=0 B=1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
B
B
A=1 B=1
L
L = A·B+A·B
Esercizio

Progettare un circuito per accendere e spegnere una lampada
da uno qualsiasi di tre interruttori indipendenti
L = 0
Cambia lo
stato di un
interruttore
qualsiasi
0
0
0
1
1
1
A
0
C
0
B
0
L = 1
0
0
0
1
1
1
A
0
B
1
C
0
Analisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di
partenza, cambiando lo stato di un interruttore per volta
L = 0
L = 1
L = 0
A
B
C
0
0
0
A
B
C
A
B
C
0
0
1
0
1
1
L = 1
L = 0
A
1
B
0
Chiudo prima l’interruttore c
A
B
C
1
1
1
C
1
L = 0
Analisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di
partenza, cambiando lo stato di un interruttore per volta
L = 0
L = 0
A
B
C
0
1
1
L = 1
L = 1
A
B
C
A
B
C
A
B
C
0
0
0
0
1
0
1
1
1
L = 0
A
B
C
1
1
0
Analisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di
partenza, cambiando lo stato di un interruttore per volta
L = 1
L = 0
A
B
C
0
0
0
L = 0
A
L = 1
1
B
0
A
B
C
1
1
1
C
1
A
B
C
A
B
C
1
0
0
1
1
0
L = 0
Analisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di
partenza, cambiando lo stato di un interruttore per volta
L = 0
L = 1
L = 0
A
B
C
0
0
0
A
B
C
A
B
C
0
0
1
0
1
1
L = 1
A
B
C
0
1
0
L = 0
A
L = 1
L = 1
1
B
0
A
B
C
1
1
1
C
1
A
B
C
A
B
C
1
0
0
1
1
0
L = 0
Scrittura della funzione logica

Dalle otto combinazioni si ottiene la tabella di verità della funzione
logica
A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
L
0
1
1
0
1
0
0
1
Si può scrivere la funzione L come somma logica di prodotti logici
L = A·B·C + A·B·C + A·B·C + A·B·C
Come collegare gli interruttori

Si può manipolare l’espressione di L usando la proprietà
distributiva dell’AND rispetto all’OR
L = A·B·C + A·B·C + A·B·C + A·B·C
L = A·(B·C + B·C) + A·(B·C + B·C)
B
C
A
B
C
A
B
C
B
C
1 0 0
B
C
A
B
C
A
B
C
B
C
1 0 1
Sistemi di numerazione
Sistemi di numerazione

Sistemi di numerazione posizionali:
La base del sistema di numerazione
Le cifre del sistema di numerazione
Il numero è scritto specificando le cifre in ordine, ed il valore dipende
dalla posizione 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 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,…,B1; se B>10 occorre introdurre B 10
simboli in aggiunta alle cifre decimali
Un numero intero N si rappresenta con la scrittura (cncn-1…c2c1c0)B
N = cnBn+cn-1Bn-1+…+c2B2+c1B1+c0B0
cn è la cifra più significativa, c0 quella meno significativa
Un numero frazionario N’ si rappresenta con la scrittura (0,c1c2…cn)B
N’ = c1B-1+c2B-2+…+cnB-n
Numeri interi senza segno

Con n cifre, in base B, si rappresentano tutti i numeri
interi positivi da 0 a Bn1 (Bn numeri distinti)
Esempio: base 10
2 cifre: da 0 a 1021 = 99
Esempio: base 2
2 cifre: da 0 a 221 = 3
00
01
02
….
98
99
00
01
10
11
102 = 100 valori
22 = 4 valori
Il sistema binario (B=2)

La base 2 è la più piccola per un sistema di numerazione
Cifre: 0 1  bit (binary digit)
Esempi:
Forma
polinomia
(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
Dal bit al byte

Un byte è un insieme di 8 bit (un numero binario a 8 cifre)
b7b6b5b4b3b2b1b0

Con un byte si rappresentano i numeri interi fra 0 e 281 = 255
00000000
00000001
00000010
00000011
…………….
11111110
11111111

28 = 256 valori distinti
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 byte ai kilobyte

24 = 16
28 = 256
216 = 65536
Potenze del 2
210 = 1024
(K=Kilo
a x 10 3)
220 = 1048576
(M=Mega a x 10 6 )
230 = 1073741824 (G=Giga
a x 10 9)

Cosa sono i Kb (Kilobyte), Mb (Megabyte), Gb (Gigabyte) ?
1
1
1
1
Kb = 210 byte = 1024 byte
Mb = 220 byte = 1048576 byte
Gb = 230 byte = 1073741824 byte
Tb = 240 byte = 1099511627776 byte (Terabyte)
Da decimale a binario  1

Si divide ripetutamente il numero intero 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
21 : 2 = 10
10 : 2 = 5
5:2= 2
2:2= 1
1:2= 0
+1
+1
+0
+1
+0
+1
resti
bit più significativo
(43)10 = (101011)2
Da decimale a binario  2

Si moltiplica ripetutamente il numero frazionario 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
Esempio: convertire in binario (0.21875)10 e (0.45)10
.21875
.4375
.875
.75
.5
 2 = 0 .4375
 2 = 0.875
 2 = 1.75
 2 = 1.5
 2 = 1.0
(0.21875)10 = (0.00111)2
.45
.90
.80
.60
.20





2
2
2
2
2
=
=
=
=
=
0.9
1.8
1.6
1.2
0.4 etc.
(0.45)10  (0.01110)2
Da binario a decimale

Oltre all’espansione esplicita in potenze del 2  forma polinomia…
(101011)2 = 1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20 = (43)10

…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
1x2=
2x2=
5x2=
10 x 2 =
21 x 2 =
2 +0
4 +1
10 + 0
20 + 1
42 + 1 = 43
(101011)2 = (43)10
Esercizio
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 esadecimale

La base 16 è molto usata in campo informatico
Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F
La corrispondenza in decimale delle cifre oltre il 9 è
A = (10)10
B = (11)10
C = (12)10
D = (13)10
E = (14)10
F = (15)10
Esempio:
(3A2F)16 = 3 163
+ 10 162 + 2 161 + 15 160 =
3 4096 + 10 256 + 2 16 + 15 = (14895)10
Da binario a esadecimale

Una cifra esadecimale corrisponde a 4 bit
0 corrisponde a 4 bit a 0

0000
0001
0010
0011
0100
0101
0110
0111
0
1
2
3
4
5
6
7
1000
1001
1010
1011
1100
1101
1110
1111
8
9
A
B
C
D
E
F F corrisponde a 4 bit a 1
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
Dai 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 binario

La conversione da esadecimale a binario si ottiene espandendo ciascuna
cifra con i 4 bit corrispondenti
Esempio: convertire in binario il numero esadecimale 0x0c8f
Notazione usata in molti linguaggi di
programmazione per rappresentare
numeri esadecimali 0x
0
c
8
f
0000 1100 1000 1111
Il numero binario ha 4 x 4 =16 bit
La rappresentazione dei dati e
l’aritmetica degli elaboratori
Numeri 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 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-11)
e +2n-11

Esempio: con 4 bit si rappresentano i numeri fra 7 ((231)) e +7 (231)
0000 +0
0001 +1
0010 +2
0011 +3
0100 +4
0101 +5
0110 +6
0111 +7
positivi
1000 -0
1001 -1
1010 -2
1011 -3
1100 -4
1101 -5
1110 -6
1111 -7
negativi
Complemento a 2


Il complemento a 2 di un numero binario (N)2 a n cifre è il numero
Tale numero si ottiene
2n(N)2 = 10……0(N)2
n
Effettuando il complemento a 1 di ogni cifra del numero di partenza: si
trasforma ogni 0 in 1 e ogni 1 in 0
Aggiungendo 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
100000000
01010111
10101000
10101001
complemento a 1
+1
28
011111111 281
01010111 N
10101000 281N
10101001
281N+1
Interi in complemento a 2
I numeri positivi sono rappresentati in modulo e segno
 I numeri 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-11

Ad esempio: numeri a 4 cifre
0000
0001
0010
0011
0100
0101
0110
0111
+0
+1
+2
+3
+4
+5
+6
+7
1000
1001
1010
1011
1100
1101
1110
1111
-8
-7
-6
-5
-4
-3
-2
-1
Nota: 0111 +7
1000 -8
Interi a 16 bit

Consideriamo numeri interi rappresentati su 16 bit in complemento a 2
Il più grande numero intero positivo 2151=(32767)10
0111 1111 1111 1111
0x 7
F
F
F
Il più piccolo numero intero negativo -215=(-32768)10
1000 0000 0000 0000
0x 8
0
0
0
0111 1111 1111 1111 +
1
1000 0000 0000 0000
Il numero intero –1 è rappresentato come
1111 1111 1111 1111
0x F
F
F
F
0000 0000 0000 0000 +
1
0000 0000 0000 0001
Addizione binaria

Le regole per l’addizione di due bit sono
0
0
1
1

+
+
+
+
0
1
0
1
=
=
=
=
0
1
1
0 con riporto di 1
L’ultima regola è…. (1)2+(1)2 = (10)2 … (1+1=2)10 !!
Esempio
riporti
1 11 1
01011011+
01011010
10110101
91+
90
181
Sottrazione binaria  1

Le regole per la sottrazione di due bit sono
00=0
10=1
11=0
10  1 = 0 con prestito di 1 dalla cifra precedente a sinistra
Esempio
0 10
11001
101
10100

25 
5
20
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
Sottrazione binaria  2

Utilizzando la rappresentazione in complemento a 2, addizione e
sottrazione sono trattate come una unica operazione
N1N2 = N1+(2nN2)2n
si trascura il bit n +1
complemento a 2 di N2 (-N2)
 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 +
111011
1001100
(12)10
Rappresentazioni in complemento


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 11111111
La somma bit a bit funziona “quasi sempre”
00110 +
10101 =
11011
(6)
(-10)
(-4)
11001 +
11010 =
10011
In complemento a 2…
Zero ha una sola rappresentazione
La somma bit a bit funziona sempre
(-6)
(-5)
(-12)
Overflow

L’overflow
si ha quando il risultato di un’operazione non è
rappresentabile correttamente con n bit
Esempio: 5 bit  [-16,+15]
14 +
01110 +
-8 +
11000 +
10
01010
-10
10110
-8
24
11000
-18
101110 +14
 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
Punteggio nei vecchi videogame… sorpresa per i campioni!
0111 1111 1111 1111 + 1 = 1000 0000 0000 0000
32767
+1=
-32768
Moltiplicazione binaria

Le regole della moltiplicazione di 2 bit sono
0
0
1
1
Esempio

x
x
x
x
0
1
0
1
=
=
=
=
0
0
0
1
1100111 x 101
1100111
0000000
1100111
1000000011
Moltiplicare per 2n corrisponde ad aggiungere n zeri in coda al
moltiplicando
110011 x 10000 = 1100110000
x 16 = 24
Divisione binaria
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 = BQ + R
 La divisione binaria si compone di una serie di sottrazioni

(
110^
1^
1^
0
101
111
1 01
1 00

101
1010
54 = 510 + 4
Dividere per 2n equivale a scorrere il numero a destra di n posizioni; le
cifre scartate costituiscono il resto
110011  10000 = 11 con resto 11
Codifica 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
A
01000001
3
00110011
$
00100100
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 (æ, ã, ë, è, …)

Codifica ASCII





American Standard Code for Information Interchange
Definisce una tabella di corrispondenza fra ciascun carattere e un codice
a 7 bit (128 caratteri)
I caratteri, in genere, sono rappresentati con 1 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 controllo (codici da 0 a 31) che
caratteri stampabili
I caratteri alfabetici hanno codici ordinati secondo l’ordine alfabetico
0 48
1 49
…….
8 56
9 57
A 65
B 66
…….
Y 89
Z 90
a 97
b 98
…….
y 121
Z 122
cifre
maiuscole
minuscole
Caratteri 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 + carattere

Ctrl
^@
^A
…..
^G
^H
^I
^J
^K
^L
^M
……
^Z
^[
….
^_
Dec
0
1
….
7
8
9
10
11
12
13
….
26
27
….
31
Hex
0
1
….
7
8
9
A
B
C
D
…
1A
1B
…..
1F
Code
NULL
SOH
……
BEL
BS
HT
LF
VT
FF
CR
….
EOF
ESC
…..
US
Nota
carattere nullo
partenza blocco
…………………
beep
backspace
tabulazione orizzontale
line feed (cambio linea)
tabulazione verticale
form feed (alim. carta)
carriage return (a capo)
…………………….
fine file
escape
………..
separatore di unità
Caratteri ASCII stampabili
Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
SPACE
!
”
#
$
%
&
’
(
)
*
+
,
.
/
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
Nota: 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 estesa

I codici oltre il 127 non sono compresi nello standard originario
Codifica 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 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 49194 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-8),
word (16 bit  UTF-16) o double word (32 bit  UTF-32). Tutte le
codifiche presuppongono, al più, l’utilizzo di 32 bit per carattere
Scarica

sistemi III - Conto anch`io