Sei sulla pagina 1di 17

25/02/2017

Sommario

• Introduzione
il calcolo automatico dalla
Fondamenti di Informatica preistoria ai giorni nostri
1. Introduzione all’Informatica / Algebra Booleana / • L’algebra di Boole
Sistemi di numerazione
da Analisi Matematica della Logica
(1847) al progetto degli elaboratori
digitali UNIVAC (1951)

• Sistemi di numerazione
da additivi a posizionali, da
Corso di Laurea in Ingegneria Gestionale decimale a binario, a esadecimale:
A.A. 2016-2017 l’alfabeto dell’elaboratore
2° Semestre
Prof. Giovanni Pascoschi Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 2

Cenni storici - 0 Cenni storici - 1

• La presenza “invasiva” dell’informatica nella vita di tutti i giorni è


un fenomeno relativamente recente; non recente è invece la
Wilhelm Schickard (1592-
necessità di avere a disposizione strumenti e metodi per contare 1635) Macchina moltiplicatrice (1624)
rapidamente, elaborare dati, “calcolare”
 Le prime testimonianze di strumenti per contare risalgono a 30.000
anni fa
 I primi esempi di algoritmi  procedure di calcolo “automatico” 
sono stati scoperti in Mesopotamia su tavolette babilonesi risalenti al
1800−1600 a.C. • Il sogno di costruire macchine capaci di effettuare
calcoli automatici affonda le radici nel pensiero
Computer di Antikitera filosofico del ‘600:
(I-II secolo dc)
 Wilhelm Schickard introdusse la prima macchina
moltiplicatrice dotata di accumulatori cilindrici

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 3 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 4

1
25/02/2017

Cenni storici - 2 Cenni storici - 3

Charles Babbage (1791-1871)

Blaise Pascal (1623-1662) Gottfried Leibnitz (1646-1716)

• Pascal (1632-1662) e Leibnitz (1646-1716) non solo affrontarono il • La macchina alle differenze, concepita da
problema, già studiato da Cartesio, di automatizzare il Babbage nel 1833, rappresenta il primo
ragionamento logico−matematico, ma si cimentarono anche nella esempio di macchina programmabile di
utilità generale
realizzazione di semplici macchine per calcolare (capaci di
effettuare somme e sottrazioni) • In seguito, lo stesso Babbage progetta la
macchina analitica (mai realizzata, troppo
complessa e critica la sua costruzione per le
tecnologie meccaniche dell’epoca)
 La prima programmatrice nella storia
dell’informatica è Ada Augusta Byron,
Macchina addizionatrice − la Pascalina (B. Pascal)
contessa di Lovelace
Macchina computazionale (G. Leibnitz)
Macchina alle differenze: modello
ricostruito presso il Museo della Scienza
di Londra seguendo il progetto del 1849

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 5 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 6

Cenni storici - 4 Cenni storici - 5

Herman Hollerith (1860-1929)


• Successivamente la macchina a schede
perforate venne utilizzata con successo Konrad Zuse (1910-1995)
per i censimenti in Austria, Norvegia e
• Fu Herman Hollerith, nel 1890, a sviluppare
la macchina a schede perforate, per Russia, tanto che Hollerith decise di
compiere le statistiche del censimento fondare una società: la Computing
decennale degli Stati Uniti Tabulating Recording Company che, nel
 I dati venivano immessi su schede di 1923, divenne l’International Business
cartone opportunamente perforate, le stesse Machine, o IBM
schede che sono state usate fino a due
decenni or sono • Nel 1932, il tedesco Konrad Zuse realizza
una macchina elettromeccanica (a rele’)
 Le schede venivano successivamente
“contate” da una sorta di pantografo che in grado di eseguire calcoli con controllo
permetteva diversi tipi di elaborazioni Census Tabulator (1890) programmato, ed introduce il sistema di
(totali, medie, statistiche, etc.)
numerazione binario (la cui algebra era
 Si impiegarono due anni e mezzo ad stata definita da Leibnitz e da Boole) 
analizzare i dati (contro i sette anni del
censimento del 1880), nonostante distrutta dalla guerra Il calcolatore Z1 (1939)

l’incremento di popolazione da 50 a 63
milioni
Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 7 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 8

2
25/02/2017

Cenni storici - 6 Cenni storici - 7

Alan Turing (1912-1954)

• Durante la seconda guerra mondiale, fioriscono i progetti di • Con l’invenzione del tubo a vuoto (1904), del transistor (1947) e,
elaboratori da utilizzarsi per scopi bellici infine, dei circuiti integrati (1969), l’evoluzione dei computer
divenne inarrestabile
 Enigma, realizzata dai tedeschi (A.
Scherbius) per codificare le comunicazioni
militari
 Red Purple, di costruzione giapponese
 Computer Colossus, costruito dagli inglesi
per la decifrazione dei messaggi tedeschi,
alla cui progettazione e realizzazione
collaborò Alan Turing, permise la vittoria
La macchina Enigma • Finora la potenza di calcolo degli elaboratori si è decuplicata ogni
5−6 anni (…ma non può durare, almeno con le tecnologie in uso)
anglo−americana sull’Atlantico

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 9 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 10

Cenni storici - 8 Cenni storici - 9

John Von Neumann (1903-1957)

• La costruzione dei primi calcolatori risale all’inizio degli anni ‘40,


grazie alla tecnologia elettronica; i primi esemplari venivano
programmati mediante connessioni elettriche e commutatori
(ENIAC, Mark I)
• Il nome di Von Neumann è legato invece ai primi calcolatori a
programma memorizzato realizzati alla fine degli anni ‘40 (EDSAC, ENIAC (1946) Mark I (1948) EDSAC (1949)
Whirlwind, IAS, UNIVAC)
 Per la prima volta, vige il principio di unitarietà di rappresentazione di
dati e istruzioni, che vengono codificati, all’interno dell’elaboratore, in
maniera indistinguibile
• La diffusione dei calcolatori a livello mondiale è avvenuta nei
decenni ‘60 e ‘70
Whirlwind (1949) IAS (1952) UNIVAC (1952)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 11 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 12

3
25/02/2017

Cenni storici - 10 Cenni storici - 11

• Tuttavia, l’esplosione dell’informatica come fenomeno di massa è


datata 1981, anno in cui l’IBM introdusse un tipo particolare di • Attualmente i PC, o meglio il loro componente fondamentale  il
elaboratore: il Personal Computer (PC) microprocessore  è utilizzato in tutti i settori applicativi (non
solo per elaborare dati):
• La particolarità dei PC consisteva nell’essere “assemblati” con
componenti facilmente reperibili sul mercato (e quindi a basso  Telefoni cellulari, ricevitori satellitari digitali, GPS
costo)  Bancomat e carte di credito
 Possibilità per qualsiasi casa produttrice di costruire “cloni”  Lavatrici e forni a micro−onde
 Computer di bordo e ABS
 Game computer
 Tablet PC (IPAD, ecc)

IBM XT Apple II

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 13 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 14

Cenni storici - 12 Cenni storici - 13

RFID – Radio Frequency IDentification


Appartengono alla categoria dei computer USA e GETTA • L’esigenza di realizzare sistemi di elaborazione dotati di più
processori operanti in parallelo è stata sentita fin dalla preistoria
dell’informatica
 In una relazione dello scienziato, generale e uomo politico italiano
Luigi Menabrea, datata 1842, sulla macchina analitica di Babbage, si fa
riferimento alla possibilità di usare più macchine dello stesso tipo in
parallelo, per accelerare calcoli lunghi e ripetitivi
• Solo la riduzione dei costi dell’hardware ha consentito, verso la fine
degli anni ‘60, l’effettiva costruzione dei primi supercalcolatori,
come le macchine CDC6600 e Illiac e, successivamente, il Cray e le
Quando ricevono un segnale emettono il proprio numero macchine vettoriali
• A partire dagli anni ‘90, gli ulteriori sviluppi della microelettronica
hanno permesso la realizzazione di calcolatori a parallelismo
massiccio e a “grana fine”, caratterizzati dall’interconnessione di
decine di migliaia di unità di elaborazione elementari: le reti
neurali, capaci di “simulare” il comportamento del cervello umano,
sulla base degli studi di McCulloch e Pitts (1943)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 15 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 16

4
25/02/2017

Cenni storici - 14 Frasi celebri ed altro......

• “Penso che ci sia mercato nel mondo per non più di cinque computer.”
(Thomas Watson, Presidente di IBM, 1943)
Cray 1 (1976) Cray XE6 (2010) • “Una unità di calcolo sull’ENIAC è dotata di 18.000 tubi elettronici a vuoto e
Illiac (1955)
CDC 6600 (1963)
pesa 30 tonnellate, ma è possibile che in futuro i computer abbiano
soltanto 1000 tubi e pesino soltanto una tonnellata e mezzo.” (Popular
Mechanics, 1949)
• “Abbiamo un computer qui a Cambridge, ce n’è uno a Manchester e uno al
laboratorio nazionale di fisica. Immagino che sarebbe giusto averne uno
anche in Scozia, ma non di più.” (Douglas Hartree, fisico inglese, 1951)
• “Ma... a che serve?” (Un ingegnere della Advanced Computing Systems,
Divisione dell’IBM, commentando il microchip, 1965).
• Nel 1976, il New York Times pubblicò un libro dal titolo La scienza nel
ventesimo secolo, nel quale il calcolatore veniva menzionato una sola volta
e indirettamente, in relazione al calcolo delle orbite dei pianeti
• “Non c’è ragione perché qualcuno possa volere un computer a casa sua.”
(Ken Olson, fondatore di Digital, 1977)
Portatile e Palmare (oggi) • “640 Kbytes should be enough for anybody.” (Bill Gates, 1981)
PC IBM (1981)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 17 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 18

Che cos’è l’informatica - 1 Che cos’è l’informatica - 2

• Informatica  fusione delle parole informazione e • L’informatica non è la scienza dei calcolatori elettronici: il
automatica  l’insieme delle discipline che studiano gli calcolatore è lo strumento che la rende “operativa”
strumenti per l’elaborazione automatica dell’informazione e i • L’elaboratore (computer, calcolatore) è un’apparecchiatura
metodi per un loro uso corretto ed efficace digitale, elettronica ed automatica capace di effettuare
trasformazioni sui dati:
• L’informatica è la scienza della rappresentazione e
dell’elaborazione dell’informazione  Digitale: i dati sono rappresentati mediante un alfabeto finito,
costituito da cifre, digit, che ne permette il trattamento
 L’accento sull’ “informazione” fornisce una spiegazione del mediante regole matematiche
perché l’informatica sia ormai parte integrante di molte attività  Elettronica: realizzazione tramite tecnologie di tipo elettronico
umane: laddove deve essere gestita dell’informazione,
 Automatica: capacità di eseguire una successione di
l’informatica è un valido strumento di supporto operazioni senza interventi esterni
 Il termine “scienza” sottolinea il fatto che, nell’informatica, • “La disumanità del computer sta nel fatto che, una volta
l’elaborazione dell’informazione avviene in maniera sistematica programmato e messo in funzione, si comporta in maniera
e rigorosa, e pertanto può essere automatizzata perfettamente onesta.” (Isaac Asimov)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 19 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 20

5
25/02/2017

L’architettura di Von Neumann La macchina universale

• Programma: sequenza di operazioni atte a predisporre


l’elaboratore alla soluzione di una determinata classe di
• La capacità dell’elaboratore di eseguire successioni di problemi
operazioni in modo automatico è determinata dalla presenza
di un dispositivo di memoria  Il programma è la descrizione di un algoritmo in una forma
comprensibile all’elaboratore
 Nella memoria sono registrati i dati e...
• Algoritmo: sequenza finita di istruzioni attraverso le quali
 ...le operazioni da eseguire su di essi (nell’ordine secondo cui
devono essere eseguite): il programma, la “ricetta” usata un operatore umano è capace di risolvere ogni problema di
dall’elaboratore per svolgere il proprio compito una data classe; non è direttamente eseguibile
dall’elaboratore
• Il programma viene interpretato dall’unità di controllo
• L’elaboratore è una macchina universale: cambiando il
 programma residente in memoria, è in grado di risolvere
problemi di natura diversa (una classe di problemi per ogni
Modello di Von Neumann programma)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 21 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 22

L’algebra di Boole George Boole


George Boole (Lincoln, 2 novembre 1815 -
Ballintemple, 8 dicembre 1864) è stato un
matematico e logico britannico considerato il
fondatore della logica matematica. Studiò la
matematica fin da giovane sui testi di Laplace e
Lagrange. Morì per una grave forma febbrile causata
da un banale raffreddore all'età di soli 49 anni. Boole
si dedicò allo studio di metodi algebrici per la
risoluzione di equazioni differenziali che gli fecero
ottenere una medaglia della Royal society e nel 1849
ALGEBRA DI BOOLE la nomina alla cattedra di matematica al Queen's
College di Cork. Nel 1854 pubblicò la sua opera più
importante indirizzata alle leggi del pensiero, con la
quale propose una nuova impostazione della logica:
dopo aver rilevato le analogie fra oggetti dell'algebra
e oggetti della logica, ricondusse le composizioni
degli enunciati a semplici operazioni algebriche. Con
questo lavoro fondò la teoria di quelle che
attualmente vengono dette algebre di Boole (o
semplicemente algebra booleana).

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 23 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 24

6
25/02/2017

L’algebra di Boole - 1 L’algebra di Boole - 2

L'algebra di Boole segue le regole della


logica con variabili "binarie" che possono
cioè assumere solo due valori.
I due possibili stati che possono
assumere le variabili binarie sono tali che
si escludano a vicenda: una variabile può
assumere o il valore falso o il valore vero,
o lo zero o l'uno. Questi valori, all'interno
George Boole (1810-1864)
dell'architettura dei calcolatori, sono
abbinati, entro opportune tolleranze, a
due tensioni differenti denominate livello
logico alto e livello logico basso.

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 25 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 26

L’algebra di Boole - 3 L’algebra di Boole - 4

• Le operazioni AND e OR sono operazioni binarie, l’operazione NOT


• Contempla due valori 0 e 1 (falso e vero) è unaria

• Corrispondono a due stati che si escludono a vicenda • Nella valutazione delle espressioni booleane esiste una relazione di
precedenza fra gli operatori NOT, AND e OR, nell’ordine in cui
• Possono descrivere lo stato di apertura o chiusura di un sono stati elencati  meglio usare le parentesi
generico contatto o di un circuito a più contatti • Gli operatori dell’algebra booleana possono essere rappresentati in
vari modi
 Spesso sono descritti semplicemente come AND, OR e NOT
 Nella descrizione dei circuiti appaiono sotto forma di porte logiche
0 1
 In matematica si usano + per OR e × per AND, mentre si rappresenta
il NOT con una barra posta sopra l’espressione che viene negata
• Sui valori booleani si definiscono le operazioni
AND, OR, NOT

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 27 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 28

7
25/02/2017

L’operatore OR L’operatore AND

• Si definisce l’operazione di somma logica (OR): • Si definisce l’operazione di prodotto logico (AND):
il valore della somma logica è il simbolo 1 se il valore il valore del prodotto logico è il simbolo 1 se il valore di
di almeno uno degli operandi è il simbolo 1
tutti gli operandi è il simbolo 1
0 0
0+
+0 = 0
0+
+1 = 1 0×
×0 = 0 0 0
0 1 0 1
1+
+0 = 1 0×
×1 = 0
0+0 0+1 0×
×0 0×
×1
1+
+1 = 1 1 1

×0 = 0

×1 = 1
1 0 1 1
0 1

×0 1×
×1
1+0 1+1

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 29 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 30

L’operatore NOT Variabili binarie

• Si definisce l’operatore di negazione (NOT): • Una variabile binaria indipendente può assumere uno
l’operatore inverte il valore della costante su cui opera dei due valori 0 e 1 0
x
0 = 1 1
1 = 0
• Esempio  date n variabili binarie indipendenti, la loro
somma logica (OR) è
• Dalla definizione…
0 = 0 1 se almeno una xi vale 1
1 = 1 x1+ x2+ …+ xn =
0 se x1= x2= …= xn = 0

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 31 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 32

8
25/02/2017

AND e NOT con variabili binarie Alcune identità

• Si verificano le seguenti identità:


• Esempio  date n variabili binarie indipendenti, il loro x + 1 = 1 x×1=x
prodotto logico (AND) è
x + 0 = x x×0=0
0 se almeno una xi vale 0
x + x = x x×x=x
x1× x2× …× xn =
1 se x1= x2= …= xn = 1 Legge dell’idempotenza
 0 è l’elemento neutro per l’operazione di OR; 1 è l’elemento
neutro per l’AND
• La negazione di una variabile x è  Gli elementi neutri sono unici  non cambiano il valore di x
x=0 se x=1 x×1 = x
x=1 se x=0 x= 0 x= 1
• Ad esempio…
• L’elemento x = NOT(x) viene detto complemento di x; 0 ×1 = 0 1×1 = 1
il complemento è unico
OK!
Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 33 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 34

Altre proprietà Configurazione delle variabili

• Per gli operatori AND e OR valgono le seguenti • Date n variabili binarie indipendenti x1, x2,…, xn, queste
proprietà: possono assumere 2n configurazioni distinte
commutativa x1+x2 = x2+x1 x1×x2 = x2×x1 Ad esempio per n=3 si hanno 8 configurazioni
associativa x1+x2+x3 = x1+(x2+x3) x1×x2×x3 = x1×(x2×x3) 000 001 010 011
x1x2x3
distributiva del prodotto rispetto alla somma x1×x2 + x1×x3 = x1×(x2+x3) 100 101 110 111
• Una configurazione specifica è individuata
• Per l’operatore NOT si provano le seguenti identità: univocamente da un AND di tutte le variabili, dove quelle
corrispondenti ai valori 0 compaiono negate, mentre
x + x = 1
x ×x = 0 quelle a 1 compaiono normali
x = x
010 x1x2x3

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 35 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 36

9
25/02/2017

Funzioni logiche Tabella di verità

• Una variabile y è una funzione delle n variabili • Date tre variabili booleane (A,B,C), si scriva la funzione F
indipendenti x1, x2,…, xn, se esiste un criterio che fa
che vale 1 quando solo due di esse hanno valore 1
corrispondere in modo univoco ad ognuna delle 2n
A B C F
configurazioni delle xi un valore di y 0 0 0 0 Si può scrivere la funzione come
y = F(x1,x2,…,xn) 0 0 1 0 somma logica delle configurazioni
0 1 0 0 corrispondenti agli 1
• Una rappresentazione esplicita di una funzione è la 0 1 1 1
tabella di verità, in cui si elencano tutte le possibili 1 0 0 0
combinazioni di x1, x2, …, xn, con associato il valore di y 1 0 1 1
1 1 0 1
x1 x2 y 1 1 1 0
0 0 0
y = x1+x2 0 1 1
1 0 1 F(A,B,C) = ABC + ABC + ABC
1 1 1 Forma canonica: somma di prodotti (OR di AND) o mintermini
−tutte le funzioni logiche si possono scrivere in questa forma

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 37 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 38

Operatore XOR Leggi di De Morgan

• Legge dell’assorbimento x1+ x1×x2 = x1


• Leggi di De Morgan
• La funzione XOR verifica la disuguaglianza di due
variabili (x1+x2) = x1×x2
x1 x2 XOR (x1×x2) = x1+x2
0 0 0
0 1 1 • Dalle leggi di De Morgan si evince che la scelta delle funzioni
1 0 1 OR, AND e NOT, come funzioni primitive, è ridondante
1 1 0
 L’operazione logica AND può essere espressa in funzione delle
operazioni OR e NOT; in modo analogo, l’operazione OR può
• L’espressione come somma di prodotti è quindi... essere espressa tramite AND e NOT
• Le relazioni stabilite sono generalmente applicate nelle
XOR = x1x2 + x1x2 trasformazioni di funzioni booleane in altre equivalenti, ma di
più facile realizzazione circuitale

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 39 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 40

10
25/02/2017

Sistemi di numerazione I numeri dell’antica Roma - 1

• Nel sistema di numerazione romano, a base decimale, ci


si serviva, come è noto, anche di simboli speciali per
indicare 5, 50, 500
• Alcune antiche epigrafi inducono a ritenere che i segni
SISTEMI DI NUMERAZIONE usati fossero inizialmente segni speciali, forse di origine
etrusca, che solo successivamente furono identificati con
le lettere I, V, X, L, C, D, M

I V X L C D M
1 5 10 50 100 500 1000

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 41 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 42

I numeri dell’antica Roma - 2 Limiti della numerazione romana

• La scrittura dei numeri avveniva combinando


additivamente i segni • Per molte centinaia di anni ancora (con l’unica ecce-
• Per agevolare scrittura e lettura si diffuse più tardi un zione dei Babilonesi) gli uomini hanno continuato ad
sistema sottrattivo già utilizzato, ad esempio, dagli Assiri utilizzare sistemi di numerazione additivi
(che ha traccia anche nelle forme verbali come ad  Più semplici da usare dato che la somma “si fa da sé”
esempio “undeviginti”, stessa cosa di “decem et
novem”)  Poco adatti a rappresentare numeri grandi (che
 Un simbolo posto alla sinistra di un simbolo di quantità presuppongono l’uso di tanti simboli posti gli uni accanto
maggiore viene sottratto, così IX e VIIII indicano entrambi agli altri)
il numero 9

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 43 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 44

11
25/02/2017

Il sistema decimale – India 1 Il sistema decimale – India 2

• Tale sistema viene utilizzato nell’opera del matematico


• La civiltà indiana, più antica delle civiltà classiche, è già indiano vissuto attorno al 500 d.C. Aryabhata, la più
documentata dal 3000 a.C. antica che ci è pervenuta (se si eccettuano frammenti
• Sebbene l’uso della matematica dovesse essere ben sparsi di matematici anteriori), dove però manca ancora
sviluppato già in epoca arcaica, i primi testi che ci sono l’uso di un simbolo zero
giunti risalgono al V secolo d.C. • Testimonianze di scritture in forma posizionale si
• Non è però ancora chiaro dove e quando si sia registrano anche prima del manuale di Aryabhata,
sviluppato il sistema di notazione decimale posizionale mentre per avere datazioni sicure di forme complete in
che, in seguito, attraverso gli Arabi, si è diffuso in cui compare anche il simbolo zero occorre arrivare al IX
Europa secolo d.C.

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 45 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 46

Il sistema decimale – India 3 Sistemi di numerazione posizionali

• Sistemi di numerazione posizionali:


• L’idea di usare un numero limitato di simboli a cui dare La base del sistema di numerazione
valore diverso a seconda della posizione occupata può Le cifre del sistema di numerazione
essere stata, secondo alcuni studiosi, sviluppata dagli Il numero è scritto specificando le cifre in ordine ed il
Indiani per conoscenza diretta  o ereditata dai Greci
 del sistema sessagesimale babilonese suo valore dipende dalla posizione relativa delle cifre
Esempio: Il sistema decimale (Base 10)
• Gli Indiani avrebbero allora iniziato ad utilizzare
solamente i primi 9 simboli del loro sistema decimale in Cifre : 0 1 2 3 4 5 6 7 8 9
caratteri Brahmi, in uso dal III secolo a.C.
5641 = 5·103 + 6·102 + 4·101 + 1·100

Posizione: 3 2 1 0

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 47 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 48

12
25/02/2017

Sistemi in una base generica B Numeri interi senza segno

• La base definisce il numero di cifre diverse nel sistema • Con n cifre in base B si rappresentano tutti i numeri
di numerazione interi positivi da 0 a Bn−1 (Bn numeri distinti)
• La cifra di minor valore è sempre lo 0; le altre sono, Esempio: base B=10 00
nell’ordine, 1,2,…,B−1; se B>10 occorre introdurre 01
02
B−10 simboli in aggiunta alle cifre decimali n=2 cifre: da 0 a 102−1 = 99
….
102 = 100 valori
Un numero intero N si rappresenta con la scrittura (cncn−1…c2c1c0)B 98
99
N = cnBn+cn−1Bn−1+...+c2B2+c1B1+c0B0

cn è la cifra più significativa, c0 la meno significativa Esempio: base B=2


00
01
Un numero frazionario N’ si rappresenta come (0,c1c2…cn)B n=2 cifre: da 0 a 22−1 =3 22 = 4 valori
10
11
N’ = c1B−1+c2B−2+...+cnB−n

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 49 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 50

Il sistema binario (B=2) Dal bit al byte

• La base 2 è la più piccola per un sistema di numerazione • Un byte è un insieme di 8 bit (un numero binario ad 8 cifre)
Cifre: 0 1 − bit (binary digit) b7b6b5b4b3b2b1b0
Forma • Con un byte si rappresentano i numeri interi fra 0 e 28−1 = 255
polinomia
Esempi: 00000000
00000001
(101101)2 = 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 00000010
32 + 0 + 8 + 4 + 0 + 1 = (45)10 00000011 28 = 256 valori distinti
…………….
(0,0101)2 = 0⋅2−1 + 1⋅2−2 + 0⋅2−3 + 1⋅2−4 = 11111110
0 + 0,25 + 0 + 0,0625 = (0,3125)10 11111111
• È l’elemento base con cui si rappresentano i dati nei calcolatori
(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 • Si utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte
(16 bit), 4 byte (32 bit), 8 byte (64 bit)…

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 51 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 52

13
25/02/2017

Dal byte al kilobyte Conversione da decimale a binario (interi)

• Potenze del 2 • Si divide ripetutamente il numero intero decimale per 2 fino


24 = 16 ad ottenere un quoziente nullo; le cifre del numero binario
28 = 256 sono i resti delle divisioni; la cifra più significativa è l’ultimo
216 = 65536 resto
210 = 1024 (K=Kilo) Esempio: convertire in binario (43)10
220 = 1048576 (M=Mega) resti
230 = 1073741824 (G=Giga) 43 : 2 = 21 +1
21 : 2 = 10 +1
• Cosa sono KB (Kilobyte), MB (Megabyte), GB (Gigabyte)? 10 : 2 = 5 +0
5:2= 2 +1
1 KB = 210 byte = 1024 byte 2:2= 1 +0
1 MB = 220 byte = 1048576 byte 1:2= 0 +1 bit più significativo
1 GB = 230 byte = 1073741824 byte
1 TB = 240 byte = 1099511627776 byte (Terabyte) (43)10 = (101011)2
1 PB = 250 byte = 1125899906842624 byte (Petabyte)

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 53 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 54

Conversione da decimale a binario (razionali) Conversione da binario a decimale

• Si moltiplica ripetutamente il numero frazionario decimale per 2, • Oltre all’espansione esplicita in potenze del 2 − forma polinomia…
fino ad ottenere una parte decimale nulla o, dato che la
condizione potrebbe non verificarsi mai, per un numero prefissato (101011)2 = 1×25 + 0×24 + 1×23 + 0×22 + 1×21 + 1×20 = (43)10
di volte; le cifre del numero binario sono le parti intere dei • …si può operare nel modo seguente: si raddoppia il bit più
prodotti successivi; la cifra più significativa è il risultato della significativo e si aggiunge al secondo bit; si raddoppia la somma e
prima moltiplicazione si aggiunge al terzo bit… si continua fino al bit meno significativo
Esempio: convertire in binario (0,21875)10 e (0,45)10 (poco usato)
0,21875 × 2 = 0 ,4375 0,45 × 2 = 0,9
Esempio: convertire in decimale (101011)2
0,4375 × 2 = 0,875 0,90 × 2 = 1,8
0,875 × 2 = 1,75 0,80 × 2 = 1,6
bit più significativo 1x2= 2 +0
0,75 × 2 = 1,5 0,60 × 2 = 1,2 2x2= 4 +1
0,5 × 2 = 1,0 0,20 × 2 = 0,4 etc. 5x2= 10 + 0
10 x 2 = 20 + 1
21 x 2 = 42 + 1 = 43
(0,21875)10 = (0,00111)2 (0,45)10 ≈ (0,01110)2
(101011)2 = (43)10

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 55 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 56

14
25/02/2017

Sistema ottale Conversione da binario a ottale

• Una cifra ottale corrisponde a 3 bit


• La base 8 utilizza 8 cifre: 0 corrisponde a 3 bit a 0 000 0
001 1
Cifre: 0 1 2 3 4 5 6 7 010 2
011 3
100 4
101 5
110 6
111 7
Esempio: • Si possono rappresentare numeri binari lunghi con poche cifre (1/3)
• La conversione da binario ad ottale è immediata, raggruppando le
(326)8 = 3×82 + 2×81
+ = 6×80 cifre binarie in gruppi di 3 (da destra) e sostituendole con le cifre
3×64 + 2×8 + 6×1 = (214)10 ottali secondo la tabella precedente

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 57 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 58

Conversione da binario a ottale (oct) Conversione da ottale a binario

• Un numero binario di 3n bit corrisponde a un numero • La conversione da ottale a binario si ottiene


ottale di n cifre espandendo ciascuna cifra con i 3 bit corrispondenti
Esempio: 24 bit corrispondono a 8 cifre ottali Esempio: convertire in binario il numero ottale 0773
101 001 001 011 100 011 111 111
5 1 1 3 4 3 7 7 Notazione usata in molti linguaggi di
(51134377)8 programmazione (es. C e Java) per
rappresentare numeri ottali

7 7 3
111 111 011

Il numero binario ha 3 ×3=9 bit

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 59 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 60

15
25/02/2017

Conversione da decimale a ottale Sistema esadecimale

• Si divide ripetutamente il numero intero decimale per 8 fino


ad ottenere un quoziente nullo; le cifre del numero ottale
sono i resti delle divisioni; la cifra più significativa è l’ultimo • La base 16 è molto usata in campo informatico
resto
Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F
Esempio: convertire in binario (43)10
La corrispondenza in decimale delle cifre oltre il 9 è
181 : 8 = 22 + 5 resti
22 : 8 = 2 + 6 A = (10)10 D = (13)10
2 : 8 = 0 + 2 cifra più significativa B = (11)10 E = (14)10
C = (12)10 F = (15)10
Esempio:
(3A2F)16 = 3×163 + 10×162 + 2×161 + 15×160 =
(181)10 = (265)8 3×4096 + 10×256 + 2×16 + 15 = (14895)10

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 61 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 62

Conversione da binario a esadecimale Conversione da binario a esadecimale (hex)

• Una cifra esadecimale corrisponde a 4 bit


0 corrisponde a 4 bit a 0 0000 0 1000 8 • Un numero binario di 4n bit corrisponde a un numero
0001 1 1001 9 esadecimale di n cifre
0010 2 1010 A
0011 3 1011 B Esempio: 32 bit corrispondono a 8 cifre esadecimali
0100 4 1100 C 1101 1001 0001 1011 0100 0011 0111 1111
0101 5 1101 D D 9 1 B 4 3 7 F
0110 6 1110 E
0111 7 1111 F F corrisponde a 4 bit a 1 (D91B437F)16
• Si possono rappresentare numeri binari lunghi con poche cifre (1/4) Esempio: 16 bit corrispondono a 4 cifre esadecimali
• La conversione da binario ad esadecimale è immediata,
raggruppando le cifre binarie in gruppi di 4 (da destra) e 0000 0000 1111 1111
sostituendole con le cifre esadecimali secondo la tabella precedente 0 0 F F
(00FF)16

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 63 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 64

16
25/02/2017

Conversione da esadecimale a binario Conversione da decimale a esadecimale

• Si divide ripetutamente il numero intero decimale per 16


fino ad ottenere un quoziente nullo; le cifre del numero
• La conversione da esadecimale a binario si ottiene esadecimale sono i resti delle divisioni; la cifra più
espandendo ciascuna cifra con i 4 bit corrispondenti significativa è l’ultimo resto
Esempio: convertire in binario il numero esadecimale 0x0c8f Esempio: convertire in esadecimale (343)10
resti
343 : 16 = 21 + 7
Notazione usata in molti linguaggi di 21 : 16 = 1 + 5
programmazione (es. C e Java) per 1 : 16 = 0 + 1
rappresentare numeri esadecimali
cifra più significativa

0 c 8 f
0000 1100 1000 1111

(343)10 = (157)16
Il numero binario ha 4 × 4=16 bit

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 65 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 66

Sommario della lezione Fine della lezione

Introduzione all’Informatica / Algebra Booleana /


Sistemi di numerazione

Evoluzione del computer


Domande?
Algebra Booleana
Sistemi di numerazione

Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 67 Fondamenti di Informatica – A.A. 2016-2017 a cura di Pascoschi Giovanni 68

17