2. Rappresentare una quantità
Il numero rappresenta una quantità astratta.
Tale quantità può essere rappresentata in diversi
modi:
Base 5, estesa con la base 10 e 20
Base 12 (Sumeri e Assiro-babilonesi)
Base 60
A cura di Jacques Bottel
2
3. Il trionfo della base 10
La base che ha storicamente trionfato è la base
10, un felice compromesso, né troppo grande
(con l'inconveniente di troppi segni
elementari) né troppo piccola (con
l'inconveniente di lunghe combinazioni di
pochi segni). Inoltre, tale base è facile da
utilizzare da noi esseri umani (abbiamo 10
dita).
A cura di Jacques Bottel
3
4. Le basi usate oggi
Oggi utilizziamo:
Base 10 in matematica
Base 2 in elettronica
Base 16 in informatica
Base 60 per le coordinate geografiche e il tempo
A cura di Jacques Bottel
4
5. Basi a confronto…
La base 10 ha 10 segni elementari: le cifre 0-…-9
La base 2 ha solo due segni elementari: 0 e 1
La base 16 ha 16 segni elementari: le cifre 0-…-9 e le
lettere A-…-F
A cura di Jacques Bottel
5
6. Basi a confronto…
Per ogni cifra:
Con la base 10 possiamo rappresentare dieci quantità
(una per ogni segno elementare), con la base 2 due
quantità, mentre con la base ben 16 sedici quantità.
Dunque, a fronte di un numero maggiore di segni
elementari, fissata la lunghezza (numero di cifre) del
numero, si può rappresentare un numero maggiore
di quantità.
A cura di Jacques Bottel
6
7. Perché il binario?
In elettronica, il valore 1 e 0 corrispondono a una
tensione elettrica, maggiore o minore di un
dato valore.
Dato che la tensione oscilla nel tempo, avere una
sola soglia a cui prestare attenzione semplifica
notevolmente la costruzione dei circuiti.
A cura di Jacques Bottel
7
8. Perché l’esadecimale?
Quando i numeri sono grandi - e quindi lunghi da
rappresentare con il sistema binario - si preferisce usare il
sistema esadecimale.
La numerazione esadecimale viene usata per:
indicare un indirizzo di memoria
Es. ∀xA27B57F
Indicare un colore
Esempio #AF04E0
A cura di Jacques Bottel
8
9. Perché l’esadecimale?
Quando i numeri sono grandi - e quindi lunghi da
Si antepone # e ∀x prima del numero esadecimale
rappresentare con il sistema binario -un numero decimaleusare il
per distinguerlo da si preferisce nel caso
in cui non contenga caratteri A-F
sistema esadecimale.
La numerazione esadecimale viene usata per:
indicare un indirizzo di memoria
Es. ∀xA27B57F
Indicare un colore
Esempio #AF04E0
A cura di Jacques Bottel
9
10. Perché l’esadecimale?
Quando i numeri sono grandi - e quindi lunghi da
rappresentare con il sistema binario - si preferisce usare il
sistema esadecimale.
La numerazione esadecimale viene usata per:
indicare un indirizzo di memoria
Es. ∀xA27B57F
Indicare un colore
Esempio #AF04E0
Red
A cura di Jacques Bottel
10
11. Perché l’esadecimale?
Quando i numeri sono grandi - e quindi lunghi da
rappresentare con il sistema binario - si preferisce usare il
sistema esadecimale.
La numerazione esadecimale viene usata per:
indicare un indirizzo di memoria
Es. ∀xA27B57F
Indicare un colore
Esempio #AF04E0
Green
A cura di Jacques Bottel
11
12. Perché l’esadecimale?
Quando i numeri sono grandi - e quindi lunghi da
rappresentare con il sistema binario - si preferisce usare il
sistema esadecimale.
La numerazione esadecimale viene usata per:
indicare un indirizzo di memoria
Es. ∀xA27B57F
Indicare un colore
Esempio #AF04E0
Blue
A cura di Jacques Bottel
12
14. Scomponiamo i numeri!
I numeri - per convenzione in base 10 - si possono
scomporre.
1’536
Unità - 100
Decine - 101
Centinaia - 102
Migliaia - 103
A cura di Jacques Bottel
14
15. Convertire in base 2!
Calcoliamo i resti delle divisioni per 2 del numero in base
10. In questo esempio, convertiamo il numero 74.
74
37
18
9
4
2
1
0
1
0
1
0
0
1
A cura di Jacques Bottel
Numero in binario:
1001010
15
16. Convertire in base 16!
Analogamente, calcoliamo i resti delle divisioni per 16
del numero in base 10.
74
4
A
4
Numero in binario:
4A
A cura di Jacques Bottel
16
17. Convertire in base 10!
Numero esadecimale:
4A
Procediamo con la conversione…
(Ax160) + (4x160)=
10+64=74
A cura di Jacques Bottel
17
18. Convertire in base 10!
Numero binario:
1001010
Procediamo con la conversione…
(0x20) + (1x21) + (0x22) + (1x23) + (0x24) + (0x25)
+ (1x26) =
2+8+64=74
A cura di Jacques Bottel
18
19. Convertire con la calcolatrice
Aprire la calcolatrice di Windows 7.
Dal menù Visualizza, clicca su “Programmatore”.
Digitare il numero (preimpostata
base 10) e selezionare una base
per convertire la quantità.
A cura di Jacques Bottel
19
20. Somma di numeri binari
Regole:
0+0= 0
0+1= 1
1+1= 0+rip
1+1+rip= 1+rip
A cura di Jacques Bottel
111
1001010
+
(74)
101111
=
(47)
1111001
(121)
20
21. Operazioni facili e veloci
Alcune operazioni con i
particolarmente semplici!
numeri
binari
sono
Incremento unitario (somma 1)
Il primo bit a 0 viene messo a 1
1001010
(74)
A cura di Jacques Bottel
1001011
(75)
21
22. Operazioni facili e veloci
Alcune operazioni con i
particolarmente semplici!
numeri
binari
sono
Incremento unitario (somma 1)
Il primo bit a 0 viene messo a 1
1001010
1001111
(79)
A cura di Jacques Bottel
1001011
1010000
(80)
22
23. Operazioni speciali
Divisione per due
Se il primo bit è 0, basta eliminarlo!
1001010
100101
(74)
(37)
E se il primo bit è 1?
Il numero non è divisibile per 2 (resto=1).
100101
(37)
A cura di Jacques Bottel
23
24. Numeri binari negativi
La notazione complemento a 2 viene utilizzata per
rappresentare i numeri negativi in binario.
Per convertire un
Bit di segno:
0 per i numeri positivi
1 per i numeri negativi
numero decimale n negativo
si deve:
Convertire |n| in binario
101111
Aggiungere il bit di segno
0010000
A cura di Jacques Bottel
(47)
24
25. Numeri binari negativi
La notazione complemento a 2 viene utilizzata per
rappresentare i numeri negativi in binario.
Per convertire un numero decimale n negativo si deve:
Convertire |n|Complemento a 1
in binario
101111
Aggiungere il bit di segno
0010000
Invertire i bit
1101111
Sommare 1
1110000
(47)
Complemento a 2
A cura di Jacques Bottel
(-47)
25
26. Differenza vs somma
Fare la somma di una quantità negativa equivale a
farne la differenza perché a-b=a+(-b).
Dimostrazione
a-b = a-b
a-b= a+0-b
a-b= a+(1x0)-(1b)
a-b= a+1(0-b)
a-b= a+1(0-b)
a-b= a+(-b)
A cura di Jacques Bottel
SOLO LEGGERE, NON STUDIARE!
Identità
Introduco l’elem. neutro rispetto alla somma
Introduco l’elem. neutro rispetto al prodotto
Raccoglimento (applico la propr. distributiva)
Elimino l’elem. neutro (prodotto e somma)
26
27. Esercizio: differenza
Esercizio
Convertire e sommare i numeri a=121 e b=-11
Svolgimento
Converto a=121
Dato che stiamo trattando una
somma, possiamo applicare la
propr. commutativa!
1111001
Converto il b=|11|, per poi farne il complemento a 2
1011
A cura di Jacques Bottel
27
28. Esercizio: differenza
Quando un addendo è negativo, la lunghezza degli
operandi deve essere uguale!
Numero 121…
01111001
L=8
Numero -11…
01011
L=4
00001011
Aggiungo 0 fino ad arrivare alla
lunghezza desiderata (Lmax)
Aggiungo il bit di segno:
0 per i numeri positivi
1 per i numeri negativi
L=Lmax
A cura di Jacques Bottel
28
29. Esercizio: differenza
Ora facciamo il complemento 1 2 di n=11:
Complemento a a
Partiamo da n=11, L=8
0 0 0 0 1 0 1 1 (11)
Invertiamo i bit
11110100
Sommiamo 1
1 1 1 1 0 1 0 1 (-11)
Complemento a 2
Ora il numero è negativo e il bit
di segno è 1
A cura di Jacques Bottel
29
30. Esercizio: differenza
Ora posso procedere a sommare i numeri…
Regole:
0+0= 0
0+1= 1
1+1= 0+rip
1+1+rip= 1+rip
1 11 1
1
01111001 +
(121)
11110101 =
(-11)
101101110
A cura di Jacques Bottel
(110)
30
31. Codifica dei caratteri
Dato che il computer tratta solo numeri binari, per
gestire i caratteri è stato necessario stabilire una
codifica, cioè stabilire come devono essere
interpretati i numeri, ovviamente non più come
una quantità.
È quindi nata lo standard ASCII (American Standard
Code for Information Interchange), ossia una
tabella che attribuisce ai numeri da 0 a 127 (primi 7
bit di un byte) un preciso significato, in questo caso
una lettera dell’alfabeto.
A cura di Jacques Bottel
31
33. Lo standard Unicode
Lo standard ASCII fu poi esteso (codifica a 8 bit). L’estensione
ha permesso di aggiungere le lettere accentate (ISO 8859-1
è l’estensione per i linguaggi dell’Europa Occidentale).
Oggi si usa lo standard Unicode che è un’ulteriore estensione
della tabella ASCII (codifica fino a 32 bit). L’estensione ha
permesso di aggiungere lettere con segni grafici particolari
come ç, ë, ê, ø, ž.
Periodicamente vengono rilasciate nuove versioni del formato
Unicode, compatibili con le versioni precedenti
(retrocompatibili).
A cura di Jacques Bottel
33
34. Verifica se hai capito…
Domande:
Perché si utilizza la base 2 in elettronica e la base 16 in
informatica?
Che cos’è e a che cosa serve lo standard ASCII? Illustra le
differenze con lo standard Unicode.
A cura di Jacques Bottel
34
35. E ora che avete capito…
memorizzate!
A cura di Jacques Bottel
35
36. MA NON HAI ANCORA FINITO…
A cura di Jacques Bottel
36
37. DEVI METTERE IN PRATICA
CIÒ CHE HAI IMPARATO…
A cura di Jacques Bottel
37
38. Esercizi pratici
Esercizi:
Converti il numero 575 in esadecimale. Converti il
numero 95 in binario. Riconverti i numeri appena
convertiti in decimale.
Fai la somma tra i numeri 112 e -13
A cura di Jacques Bottel
38