Title: Nessun titolo diapositiva
1Fondamenti di Informatica
Monica Bianchini Dipartimento di Ingegneria
dellInformazione
ENIAC (1946 ca.)
E-mail monica_at_dii.unisi.it
2Sommario
- Introduzione
- il calcolo automatico dalla preistoria ai giorni
nostri - Lalgebra di Boole
- da Analisi Matematica della Logica (1847) al
progetto degli elaboratori digitali - Sistemi di numerazione
- da additivi a posizionali, da decimale a
binario, a esadecimale lalfabeto
dellelaboratore - La rappresentazione dei dati e laritmetica degli
elaboratori - dai bit ai numeri, ai testi, alle immagini, alla
musica, ai video in digitale
UNIVAC (1951)
3Introduzione
4Cenni storici ? 1
Wilhelm Schickard (1592-1635)
- La presenza invasiva dellinformatica nella
vita di tutti i giorni è un fenomeno
relativamente recente non recente è invece la
necessità di avere a disposizione strumenti e
metodi per contare 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.
Macchina moltiplicatrice (1624)
- Il sogno di costruire macchine capaci di
effettuare calcoli automatici affonda le radici
nel pensiero filosofico del 600 - Wilhelm Schickard introdusse la prima macchina
moltiplicatrice dotata di accumulatori cilindrici
5Cenni storici ? 2
Gottfried Leibnitz (1646-1716)
Blaise Pascal (1623-1662)
- Pascal e Leibnitz non solo affrontarono il
problema, già studiato da Cartesio, di
automatizzare il ragionamento logico?matematico,
ma si cimentarono anche nella realizzazione di
semplici macchine per calcolare (capaci di
effettuare somme e sottrazioni)
6Cenni storici ? 3
Charles Babbage (1791-1871)
- La macchina alle differenze, concepita da Babbage
nel 1833, rappresenta il primo esempio di
macchina programmabile di utilità generale - In seguito, lo stesso Babbage progetta la
macchina analitica (mai realizzata, troppo
complessa e critica la sua costruzione per le
tecnologie meccaniche dellepoca) - La prima programmatrice nella storia
dellinformatica è Ada Augusta Byron, contessa di
Lovelace
Macchina alle differenze modello ricostruito
presso il Museo della Scienza di Londra seguendo
il progetto del 1849
7Cenni storici ? 4
Herman Hollerith (1860-1929)
- Fu Herman Hollerith, nel 1890, a sviluppare la
macchina a schede perforate, per compiere le
statistiche del censimento decennale degli Stati
Uniti - I dati venivano immessi su schede di cartone
opportunamente perforate, le stesse schede che
sono state usate fino a due decenni or sono - Le schede venivano successivamente contate da
una sorta di pantografo che permetteva diversi
tipi di elaborazioni (totali, medie, statistiche,
etc.) - Si impiegarono due anni e mezzo ad analizzare i
dati (contro i sette anni del censimento del
1880), nonostante lincremento di popolazione da
50 a 63 milioni
Census Tabulator (1890)
8Cenni storici ? 5
Konrad Zuse (1910-1995)
- Successivamente la macchina a schede perforate
venne utilizzata con successo per i censimenti in
Austria, Norvegia e Russia, tanto che Hollerith
decise di fondare una società la Computing
Tabulating Recording Company che, nel 1923,
divenne lInternational Business Machine, o IBM - Nel 1932, il tedesco Konrad Zuse realizza una
macchina elettromeccanica in grado di eseguire
calcoli con controllo programmato, ed introduce
il sistema di numerazione binario (la cui algebra
era stata definita da Leibnitz e da Boole)
Il calcolatore Z1 (1939)
9Cenni storici ? 6
Alan Turing (1912-1954)
- Durante la seconda guerra mondiale, fioriscono i
progetti di elaboratori da utilizzarsi per scopi
bellici
- 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 anglo?americana
sullAtlantico
La macchina Enigma
10Cenni storici ? 7
- Con linvenzione del tubo a vuoto (1904), del
transistor (1947) e, infine, dei circuiti
integrati (1969), levoluzione dei computer
divenne inarrestabile - Finora la potenza di calcolo degli elaboratori si
è decuplicata ogni 5?6 anni (ma non può durare,
almeno con le tecnologie in uso)
11Cenni storici ? 8
John Von Neumann (1903-1957)
- La costruzione dei primi calcolatori risale
allinizio 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, Whirlwind, IAS,
UNIVAC) - Per la prima volta, vige il principio di
unitarietà di rappresentazione di dati e
istruzioni, che vengono codificati, allinterno
dellelaboratore, in maniera indistinguibile - La diffusione dei calcolatori a livello mondiale
è avvenuta nei decenni 60 e 70
12Cenni storici ? 9
UNIVAC (1952)
Whirlwind (1949)
IAS (1952)
13Cenni storici ? 10
- Tuttavia, lesplosione dellinformatica come
fenomeno di massa è datata 1981, anno in cui
lIBM introdusse un tipo particolare di
elaboratore il Personal Computer (PC) - La particolarità dei PC consisteva nellessere
assemblati con componenti facilmente reperibili
sul mercato (e quindi a basso costo) - Possibilità per qualsiasi casa produttrice di
costruire cloni - Attualmente i PC, o meglio il loro componente
fondamentale ? il microprocessore ? è utilizzato
in tutti i settori applicativi (non solo per
elaborare dati) - Telefoni cellulari, ricevitori satellitari
digitali, GPS - Bancomat e carte di credito
- Lavatrici e forni a micro?onde
- Computer di bordo e ABS
- ...
14Cenni storici ? 11
- Lesigenza di realizzare sistemi di elaborazione
dotati di più processori operanti in parallelo è
stata sentita fin dalla preistoria
dellinformatica - 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 dellhardware ha
consentito, verso la fine degli anni 60,
leffettiva costruzione dei primi
supercalcolatori, come le macchine CDC6600 e
Illiac e, successivamente, il Cray e le 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
dallinterconnessione 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)
15Cenni storici ? 12
Cray 1 (1976)
Cray XE6 (2010)
Portatile e Palmare (oggi)
16Frasi celebri ed altro
- Penso che ci sia mercato nel mondo per non più
di cinque computer. (Thomas Watson, Presidente
di IBM, 1943) - Ho girato in lungo e in largo questo paese e ho
parlato con le migliori menti e posso assicurarvi
che questa moda dellelaborazione automatica è un
capriccio che non vedrà la fine dellanno.
(Editor di libri scientifici di Prentice Hall,
1947) - Una unità di calcolo sullENIAC è dotata di
18.000 tubi elettronici a vuoto e 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 dellIBM,
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) - 640 Kbytes should be enough for anybody. (Bill
Gates, 1981)
17Che cosè linformatica ? 1
- Informatica ? fusione delle parole informazione e
automatica ? linsieme delle discipline che
studiano gli strumenti per lelaborazione
automatica dellinformazione e i metodi per un
loro uso corretto ed efficace - Linformatica è la scienza della rappresentazione
e dellelaborazione dellinformazione - Laccento sull informazione fornisce una
spiegazione del perché linformatica sia ormai
parte integrante di molte attività umane laddove
deve essere gestita dellinformazione,
linformatica è un valido strumento di supporto - Il termine scienza sottolinea il fatto che,
nellinformatica, lelaborazione
dellinformazione avviene in maniera sistematica
e rigorosa, e pertanto può essere automatizzata
18Che cosè linformatica ? 2
- Linformatica non è la scienza dei calcolatori
elettronici il calcolatore è lo strumento che la
rende operativa - Lelaboratore (computer, calcolatore) è
unapparecchiatura digitale, elettronica ed
automatica capace di effettuare trasformazioni
sui dati - Digitale i dati sono rappresentati mediante un
alfabeto finito, costituito da cifre, digit, che
ne permette il trattamento mediante regole
matematiche - Elettronica realizzazione tramite tecnologie di
tipo elettronico - Automatica capacità di eseguire una successione
di operazioni senza interventi esterni - La disumanità del computer sta nel fatto che,
una volta programmato e messo in funzione, si
comporta in maniera perfettamente onesta. (Isaac
Asimov)
19Larchitettura di Von Neumann
- La capacità dellelaboratore di eseguire
successioni di operazioni in modo automatico è
determinata dalla presenza di un dispositivo di
memoria - Nella memoria sono registrati i dati e...
- ...le operazioni da eseguire su di essi
(nellordine secondo cui devono essere eseguite)
il programma, la ricetta usata dallelaboratore
per svolgere il proprio compito - Il programma viene interpretato dallunità di
controllo - ?
- Modello di Von Neumann
-
20La macchina universale
- Programma sequenza di operazioni atte a
predisporre lelaboratore alla soluzione di una
determinata classe di problemi - Il programma è la descrizione di un algoritmo in
una forma comprensibile allelaboratore - Algoritmo sequenza finita di istruzioni
attraverso le quali un operatore umano è capace
di risolvere ogni problema di una data classe
non è direttamente eseguibile dallelaboratore - Lelaboratore è una macchina universale
cambiando il programma residente in memoria, è in
grado di risolvere problemi di natura diversa
(una classe di problemi per ogni programma)
21Ancora sullinformatica
- Linformatica è lo studio sistematico degli
algoritmi che descrivono e trasformano
linformazione la loro teoria, analisi,
progetto, efficienza, realizzazione (ACM,
Association for Computing Machinery) - Nota
- È possibile svolgere concettualmente unattività
di tipo informatico senza lausilio del
calcolatore, per esempio nel progettare ed
applicare regole precise per svolgere operazioni
aritmetiche con carta e penna lelaboratore,
tuttavia, è uno strumento di calcolo potente, che
permette la gestione di quantità di informazione
altrimenti intrattabili
22Lalgebra di Boole
23Lalgebra di Boole ? 1
George Boole (1810-1864)
- Contempla due costanti 0 e 1 (falso e vero)
- Corrispondono a due 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 - Sui valori booleani si definiscono le
operazioniAND, OR, NOT
24Lalgebra di Boole ? 2
- Le operazioni AND e OR sono operazioni binarie,
loperazione NOT è unaria - Nella valutazione delle espressioni booleane
esiste una relazione di precedenza fra gli
operatori NOT, AND e OR, nellordine in cui sono
stati elencati - Gli operatori dellalgebra 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 - In matematica si usano ? per OR e ? per AND,
mentre si rappresenta il NOT con una barra posta
sopra lespressione che viene negata
25Loperazione di OR
- Si definisce loperazione di somma logica
(OR)il valore della somma logica è il simbolo 1
se il valore di almeno uno degli operandi è il
simbolo 1
0?0 ? 00?1 ? 11?0 ? 11?1 ? 1
26Loperazione di AND
- Si definisce loperazione di prodotto logico
(AND)il valore del prodotto logico è il simbolo
1 se il valore di tutti gli operandi è il simbolo
1
0?0 ? 00?1 ? 01?0 ? 01?1 ? 1
27La negazione NOT
- Si definisce loperatore di negazione
(NOT)loperatore inverte il valore della
costante su cui opera - Dalla definizione
28Variabili binarie
- Una variabile binaria indipendente può assumere
uno dei due valori 0 e 1 - Date n variabili binarie indipendenti, la loro
somma logica (OR) è
0
x
1
1 se almeno una xi vale 1
x1 x2 xn
0 se x1 x2 xn 0
29AND e NOT con variabili binarie
- Date n variabili binarie indipendenti, il loro
prodotto logico (AND) è - La negazione di una variabile x è
- Lelemento x ? NOT(x) viene detto complemento di
x il complemento è unico
x 0 se x 1x 1 se x 0
30Alcune identità
- Si verificano le seguenti identità
- 0 è lelemento neutro per loperazione di OR 1 è
lelemento neutro per lAND - Gli elementi neutri sono unici
- Ad esempio
x 1 ? 1x 0 ? x x x ? x
x ? 1 ? xx ? 0 ? 0 x ? x ? x
Legge dellidempotenza
31Altre proprietà
- Per gli operatori AND e OR valgono le seguenti
proprietà - Per loperatore NOT si provano le seguenti
identità
commutativa x1x2 ? x2x1
x1? x2 ? x2? x1 associativa
x1x2x3 ? x1(x2x3) x1? x2? x3 ? x1?(x2?
x3) distributiva del prodotto rispetto alla somma
x1? x2 x1? x3 ? x1?(x2x3)
x x ? 1x ? x ? 0 x ? x
32Configurazione delle variabili
- Date n variabili binarie indipendenti x1, x2,,
xn, queste possono assumere 2n configurazioni
distinte - Una configurazione specifica è individuata
univocamente da un AND (a valore 1) di tutte le
variabili, dove quelle corrispondenti ai valori 0
compaiono negate
Ad esempio per n3 si hanno 8 configurazioni
x1x2x3
010
33Funzioni 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 xi un valore di y - 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
y F(x1,x2,,xn)
34Una tabella di verità
- Date tre variabili booleane (A,B,C), si scriva la
funzione F che vale 1 quando solo due di esse
hanno valore 1
A B C F 0 0 0 00 0 1 00 1 0 00 1
1 1 1 0 0 0 1 0 1 1 1 1 0 11 1 1 0
Si può scrivere la funzione come somma logica
delle configurazioni corrispondenti agli 1
F(A,B,C) ? ABC ? ABC ? ABC
- Forma canonica somma di prodotti (OR di AND)
- tutte le funzioni logiche si possono scrivere in
questa forma
35Un esempio lo XOR ? 1
- La funzione XOR verifica la disuguaglianza di due
variabili - Lespressione come somma di prodotti è quindi...
x1 x2 XOR0 0 00 1 11 0 11
1 0
XOR x1x2 x1x2
36Un esempio lo XOR ? 2
Porta logica per XOR
37Esempi
- Legge dellassorbimento x1? x1?x2 ? x1
- Leggi di De Morgan
- (x1?x2) ? x1?x2
- (x1?x2) ? x1?x2
- Dalle leggi di De Morgan si evince che la scelta
delle funzioni OR, AND e NOT, come funzioni
primitive, è ridondante - Loperazione logica AND può essere espressa in
funzione delle operazioni OR e NOT in modo
analogo, loperazione 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
38Un esempio di circuito logico
y1 F(B,C,D) (B?C)D
39Un 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 dellinterruttore
L
L
A
A
B
B
0
0
0
0
1
1
1
1
A
A
B
B
A0 B1
A0 B0
L
L
A
B
A
B
0
0
0
0
1
1
1
1
A
A
B
B
L ? A?B?A?B
A1 B0
A1 B1
40Un esercizio
- Progettare un circuito per accendere e spegnere
una lampada da uno qualsiasi di tre interruttori
indipendenti
0
1
0
41Analisi delle combinazioni
- Si considera cosa accade a partire dalla
configurazione di partenza, cambiando lo stato di
un interruttore per volta
42Scrittura della funzione logica
- Dalle otto combinazioni si ottiene la tabella di
verità della funzione logica - 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
43Come collegare gli interruttori
- Si può manipolare lespressione di L usando la
proprietà distributiva dellAND rispetto allOR
L A?B?C ? A?B?C ? A?B?C ? A?B?C
L A ?(B?C ? B?C) ? A ?(B?C ? B?C)
44Esercizi
- Esercizio 1
- Siano a2, a1, b2, b1 i bit che rappresentano due
numeri interi positivi (A?a2a1 e B?b2b1). Sia r
una variabile booleana che vale 1 se e solo A è
maggiore?uguale a B (A?B). Ad esempio, quando
A?11 e B?10, allora a2?1, a1?1, b2?1, b1?0 e r?1.
Si scriva la forma canonica che definisce r come
funzione di a2, a1, b2, b1. - Esercizio 2
- I signori A, B, C e D fanno parte di un
consiglio di amministrazione. Sapendo che hanno a
disposizione le seguenti quote di possesso
azionario A?40, B?25, C?20, D?15,
formalizzare tramite tabella di verità (con
successiva estrazione della forma canonica) la
funzione booleana che decide quando il consiglio
di amministrazione è in grado di approvare una
mozione.
45Esercizi (continua)
- Esercizio 3
- Il direttore di una squadra di calcio vuol
comprare 4 giocatori dal costo di 2, 5, 6 e 8
milioni di euro, ma ha a disposizione solo 8
milioni. Siano a2, a5, a6, a8 variabili booleane
che valgono 1 se e solo se si acquistano,
rispettivamente, i giocatori da 2, 5, 6, 8
milioni. Sia r una variabile che è vera se e solo
se linsieme di giocatori che si decide di
comprare non supera la cifra disponibile. Ad
esempio, se a2?1, a5?1, a6?0, a8?0, allora r?1.
Si scriva la forma canonica che definisce r come
funzione delle variabili a2, a5, a6, a8.
46Sistemi di numerazione
47Ancora un po di preistoria ? 1
- I primi esempi di utilizzo di sistemi di
numerazione risalgono al neolitico, ovvero a
circa 50.000 anni fa - In epoca preistorica, le più utilizzate furono le
basi 2, 5, 10, 20, 12, e 60 - Mentre le basi 2, 5, 10 e 20 sono suggerite dalla
fisiologia umana, 12 e 60 sembrano suggerite da
scopi utilitaristici 12 è divisibile per 1, 2,
3, 4, 6 e 12 mentre 60 per 1, 2, 3, 4, 5, 6, 10,
12, 15, 20, 30 e 60 - La base 12 è ancora utilizzata in alcune misure
di tempo, 60 nella misurazione di angoli e tempo
48Ancora un po di preistoria ? 2
- Da notare che il 7 non compare mai nelle basi di
numerazione e, in effetti, ebbe significati
particolari, anche religiosi, presso i popoli
antichi - Il 7 esprime infatti la globalità,
luniversalità, lequilibrio perfetto - Era legato al compiersi del ciclo lunare
- Presso i Babilonesi erano ritenuti festivi, e
consacrati al culto, i giorni di ogni mese
multipli di 7
49E di storia ? 1
- Tra le prime testimonianze certe dellutilizzo di
concetti aritmetici avanzati vi sono le tavole
numeriche babilonesi, elenchi di numeri
utilizzati per calcoli astronomici e di
agrimensura, risalenti al X secolo a.C. - Tuttavia, nelle culture dellantica Mesopotamia,
esistevano tabelle per le addizioni e le
sottrazioni già durante il regno di Sargon I,
intorno al 2350 a.C.
50E di storia ? 2
- Il documento più significativo dellantico Egitto
è il papiro di Ahmes o Ahmose, dal nome dello
scriba che lo compose nel 1650 a.C. - Lo stesso Ahmes sostiene inoltre che il suo
materiale è tratto da un documento anteriore, e
fa risalire loriginale ad Imhotep, medico e
architetto del faraone Djoser della III dinastia,
e quindi al 2650 a.C. circa - Imhotep è ritenuto larchitetto della grande
piramide a gradoni di Saqqara, la cui enorme base
quadrata ha lati perfetti al centimetro!
51I numeri in Mesopotamia ? 1
- Un antichissimo strumento utilizzato un po
ovunque per aiutarsi nei conteggi è costituito da
semplici sassolini - Non a caso la parola calcolo deriva dal latino
calculus, che significa appunto sassolino - Appartengono alla civiltà dei Sumeri varie
tavolette che contengono i più antichi segni
numerali usati dalluomo e risalgono al 3500?3000
a.C. - Inizialmente, però, i Sumeri avevano
semplicemente perfezionato il metodo dei
sassolini, costruendone di particolari, in
terracotta, di forme e dimensioni diverse,
ciascuno con un proprio valore
52I numeri in Mesopotamia ? 2
- I simboli fondamentali usati nella numerazione
sumera corrispondono ai numeri 1, 10, 60, 600,
3600, 36000 - I valori dei sassolini sono crescenti secondo una
scala che procede per 10 e per 6 alternativamente
36000
1
10
60
600
3600
53I numeri in Mesopotamia ? 3
- Il sistema di rappresentazione dei valori
attraverso i calculi è un sistema additivo - Come in ogni sistema di rappresentazione
additivo, loperazione di addizione risulta
particolarmente semplice - Per addizionare due o più valori basterà infatti
mettere insieme i simboli uguali di ciascuno
degli addendi laddizione è compiuta nel gesto
stesso dellunione dei sassolini - Linsieme dei sassolini indicherà
complessivamente il valore risultato
delladdizione
54I numeri in Mesopotamia ? 4
- Successivamente i Sumeri, per motivi di
praticità, realizzarono gli stessi simboli su
tavolette di argilla, utilizzando bastoncini di
diverse dimensioni - cominciarono cioè a scrivere i numeri
?
?
?
?
55I numeri in Mesopotamia ? 5
Tavoletta pittografica con un conto di 33 misure
dolio (Godin Tepe, Iran, 3100 a.C.)
56I numeri in Mesopotamia ? 6
- Un ruolo speciale nellaritmetica sumera spetta
dunque ai numeri 10 e 60 caratteristica
ereditata poi dal sistema babilonese - Vari secoli dopo, attorno al XIX secolo a.C., a
partire dallantica numerazione sumera, gli
scienziati Babilonesi crearono infatti un sistema
di scrittura basato sui soli due simboli - cuneo verticale ? 1
- parentesi uncinata ? 10
57I numeri in Mesopotamia ? 7
- Si rappresentavano i numeri da 1 a 59
- Per i numeri successivi, si ha la prima
testimonianza delluso di una notazione
posizionale - Non si introducevano infatti altri simboli, ma si
affiancavano gruppi di cunei per indicare le
successive potenze del 60 - Si tratta dunque di un sistema di numerazione
posizionale (come il nostro, ma) in base 60
58I numeri in Mesopotamia ? 8
59I numeri in Mesopotamia ? 9
Tavoletta di argilla (1900?1600 a.C.) contenente
un elenco di terne pitagoriche (misure dei lati
di un triangolo rettangolo)
60I numeri in Mesopotamia ? 10
- Ad esempio
- Il sistema di spaziatura consentiva di risolvere
le ambiguità di interpretazione dei
raggruppamenti - Ai tempi di Alessandro Magno era però invalso
anche luso di un simbolo (due cunei obliqui) per
indicare un posto vuoto questo simbolo svolgeva
alcune funzioni del nostro zero, ma non tutte
veniva usato fra colonne e mai per indicare
colonne vuote alla fine della sequenza
? 7322
61I numeri nellantico Egitto ? 1
- La civiltà degli Egizi ci ha lasciato alcune fra
le più antiche tracce di matematica scritta - I primi numeri scritti si individuano infatti su
monu-menti e stele databili allinizio del III
millennio a.C. - Si tratta di iscrizioni che impiegano il sistema
geroglifico, la scrittura pittografica egizia
62I numeri nellantico Egitto ? 2
- Nel sistema geroglifico vengono riservati ai
numeri sette simboli diversi per rappresentare le
potenze del 10, da 1 a 106 - I geroglifici utilizzati erano
Pastoia per bestiame o giogo
Rotolo di fune
Bastoncino
Ninfea o fiore di loto
Uomo a braccia levate, simbolo del dio Heh
Dito
Girino o rana
63I numeri nellantico Egitto ? 3
- I numeri venivano formati raggruppando i simboli,
generalmente posti in ordine dal più piccolo al
più grande, da sinistra a destra (o viceversa) - Il sistema di numerazione non è, tuttavia,
posizionale - Lordine dei simboli che definiscono le potenze
del 10 può venire alterato senza cambiare il
valore del numero rappresentato - Lordine è una sorta di convenzione linguistica,
senza significato matematico
64I numeri nellantico Egitto ? 4
?131.200
65I numeri nellantico Egitto ? 5
- Esempi di operazioni
- Addizione si effettua sommando i simboli uguali
e, qualora si superi il valore 10, sostituendo i
dieci simboli con il simbolo opportuno (quello
subito superiore nella gerarchia) - Moltiplicazione utilizza un sistema che
sottintende la base 2 - si scompone il moltiplicatore in potenze di 2,
poi si raddoppia il moltiplicando tante volte
quante necessario, e infine si esegue la somma
66I numeri nellantico Egitto ? 6
13
67I numeri nellantica Grecia ? 1
- Nella civiltà greca classica sono noti due
principali sistemi di numerazione - Il primo, più antico, è noto come attico ed è per
molti aspetti simile a quello in uso presso i
Romani utilizzava infatti accanto ai simboli
fondamentali per l1 e le potenze di 10 fino a
10000, un simbolo speciale per il 5, che
combinato con i precedenti, dava altri simboli
anche per 50, 500, 5000, 50000 - Compaiono testimonianze di questo sistema dal V
al I secolo a.C. ma, a partire dal III secolo, si
diffonde anche il sistema detto ionico o
alfabetico
68I numeri nellantica Grecia ? 2
- Il sistema ionico si serve di ventisette simboli
alfabetici (alcuni dei quali arcaici e non più
usati nella Grecia classica) per indicare le
unità da 1 a 9, le decine da 10 a 90, le
centinaia da 100 a 900 - Si usavano poi nuovamente le prime nove lettere
precedute da un apice in basso per indicare i
multipli di 1000, e per esprimere numeri ancora
più grandi si ricorreva al simbolo M (iniziale di
miriade) che indicava la moltiplicazione per
10000 del numero che seguiva - Sistema di numerazione decimale additivo
69I numeri nellantica Grecia ? 3
? 67.766.776
70I numeri nellantica 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 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
71I numeri nellantica Roma ? 2
- La scrittura dei numeri avveniva combinando
additivamente i segni - Per agevolare scrittura e lettura si diffuse più
tardi un sistema sottrattivo già utilizzato, ad
esempio, dagli Assiri (che ha traccia anche nelle
forme verbali come ad esempio undeviginti,
stessa cosa di decem et novem) - Un simbolo posto alla sinistra di un simbolo di
quantità maggiore viene sottratto, così IX e
VIIII indicano entrambi il numero 9 - Ancora in epoca tarda, un segno che prese
laspetto di una linea orizzontale posta sopra le
lettere serviva per indicarne la moltiplicazione
per 1000
72La storia continua
- Per molte centinaia di anni ancora (con lunica
ecce-zione dei Babilonesi) gli uomini hanno
continuato ad utilizzare sistemi di numerazione
additivi - Più semplici da usare dato che la somma si fa da
sé - Poco adatti a rappresentare numeri grandi (che
presuppongono luso di tanti simboli posti gli
uni accanto agli altri)
73DallIndia il sistema decimale ? 1
- La civiltà indiana, più antica delle civiltà
classiche, è già documentata dal 3000 a.C. - Sebbene luso della matematica dovesse essere ben
sviluppato già in epoca arcaica, i primi testi
che ci sono giunti risalgono al V secolo d.C. - Non è però ancora chiaro dove e quando si sia
sviluppato il sistema di notazione decimale
posizionale che, in seguito, attraverso gli
Arabi, si è diffuso in Europa
74DallIndia il sistema decimale ? 2
- Tale sistema viene utilizzato nellopera del
matematico indiano vissuto attorno al 500 d.C.
Aryabhata, la più antica che ci è pervenuta (se
si eccettuano frammenti sparsi di matematici
anteriori), dove però manca ancora luso di un
simbolo zero - Testimonianze di scritture in forma posizionale
si registrano anche prima del manuale di
Aryabhata, mentre per avere datazioni sicure di
forme complete in cui compare anche il simbolo
zero occorre arrivare al IX secolo d.C.
75DallIndia il sistema decimale ? 3
- Lidea di usare un numero limitato di simboli a
cui dare valore diverso a seconda della posizione
occupata può essere stata, secondo alcuni
studiosi, sviluppata dagli Indiani per conoscenza
diretta ? o ereditata dai Greci ? del sistema
sessagesimale babilonese - Gli Indiani avrebbero allora iniziato ad
utilizzare solamente i primi 9 simboli del loro
sistema decimale in caratteri Brahmi, in uso dal
III secolo a.C.
76DallIndia il sistema decimale ? 4
- I simboli assumono forme diverse a seconda delle
zone e dei periodi, ma sono comunque quelli che
gli Arabi più tardi utilizzarono e che, dalla
forma araba, sono passati in Europa, fino alla
forma definitiva resa uniforme dalla stampa nel
XV secolo
77Sistemi di numerazione posizionali
- 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 suo 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 5103 6102 4101 1100
Posizione 3 2 1 0
78Sistemi 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, nellordine, 1,2,,B?1 se Bgt10 occorre
introdurre B?10 simboli in aggiunta alle cifre
decimali
Un numero intero N si rappresenta con la
scrittura (cncn?1c2c1c0)B
N cnBncn?1Bn?1...c2B2c1B1c0B0
cn è la cifra più significativa, c0 la meno
significativa
Un numero frazionario N si rappresenta come
(0,c1c2cn)B
N c1B?1c2B?2...cnB?n
79Numeri 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
102 100 valori
Esempio base 2
22 4 valori
2 cifre da 0 a 22?1 3
80Il sistema binario (B?2)
- La base 2 è la più piccola per un sistema di
numerazione
Cifre 0 1 ? bit (binary digit)
Forma polinomia
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
81Dal bit al byte
- Un byte è un insieme di 8 bit (un numero binario
ad 8 cifre) - Con un byte si rappresentano i numeri interi fra
0 e 28?1 ? 255 - È lelemento 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)
b7b6b5b4b3b2b1b0
00000000 00000001 00000010 00000011 . 1111111
0 11111111
28 256 valori distinti
82Dal byte al kilobyte
- Potenze del 2
- Cosa sono KB (Kilobyte), MB (Megabyte), GB
(Gigabyte)?
24 1628 256 216 65536 210
1024 (KKilo) 220 1048576
(MMega) 230 1073741824 (GGiga)
1 KB 210 byte 1024 byte1 MB 220 byte
1048576 byte 1 GB 230 byte 1073741824 byte 1
TB 240 byte 1099511627776 byte (Terabyte) 1
PB 250 byte 1125899906842624 byte (Petabyte)
83Da decimale a binario Numeri interi
- 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 è lultimo
resto
Esempio convertire in binario (43)10
resti
43 2 21 121 2 10 1 10 2 5 0
5 2 2 1 2 2 1 0 1 2 0
1
bit più significativo
(43)10 (101011)2
84Da decimale a binario Numeri razionali
- 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
85Da binario a decimale
- Oltre allespansione esplicita in potenze del 2 ?
forma 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
(101011)2 1?25 0?24 1?23 0?22 1?21
1?20 (43)10
Esempio convertire in decimale (101011)2
bit più significativo
86Esercizi
- 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
87Sistema 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 D (13)10 B (11)10 E
(14)10 C (12)10 F (15)10
Esempio
(3A2F)16 3?163 10?162 2?161 15?160
3?4096 10?256 2?16
15 (14895)10
88Da 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 (da destra) e sostituendole con le
cifre esadecimali secondo la tabella precedente
0000 0 1000 8 0001 1 1001
9 0010 2 1010 A 0011 3 1011
B 0100 4 1100 C 0101 5 1101
D 0110 6 1110 E 0111 7 1111
F
0 corrisponde a 4 bit a 0
F corrisponde a 4 bit a 1
89Dal bit allhex
- 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
90Da 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 (es. C e Java) per rappresentare
numeri esadecimali
0 c 8 f 0000 1100
1000 1111
Il numero binario ha 4 ? 416 bit
91Esempi ? 1
- In qualsiasi base, lessere il sistema di
numerazione posizionale impone che combinazioni
diverse di cifre uguali rappresentino numeri
diversi ad esempio - (319)10 ? (193)10
- (152)6 ? (512)6, infatti...
- (152)61?625?612?6036302(68)10
- (512)65?621?612?6018062(188)10
- Numeri che hanno identica rappresentazione, in
basi diverse, hanno valori diversi - (234)10 ? (234)8 , infatti...
- (234)8 2?82 3?81 4?80 2?64 3?8 4
128244 (156)10 - Osservazione più piccola è la base, minore è il
valore del numero rappresentato dalla stessa
sequenza di cifre
92Esempi ? 2
- La notazione posizionale si applica anche per il
calcolo del valore dei numeri frazionari,
infatti... - (0,872)10 8?10?1 7?10?2 2?10?3
- 8/10 7/100 2/1000
0,8 0,07 0,002 - Quante cifre occorreranno per rappresentare il
numero decimale 36 in base 2? Sappiamo che con n
cifre si rappresentano i numeri da 0 a 2n?1,
quindi... - per n1 (con una cifra) si rappresentano 0...21?1
? 0,1 - per n2 0...22?1 ? 0...3
- per n3 0...23?1 ? 0...7
- per n4 0...24?1 ? 0...15
- per n5 0...25?1 ? 0...31
- per n6 0...26?1 ? 0...63
Effettivamente possiamo verificare che
(100100)2(36)10, infatti... 1001001?250?240?23
1?220?210?20 32 4
36 con 6 cifre necessarie per la codifica del
numero in base 2
93Esempi ? 3
- Quesito Per quale base B risulterà vera
luguaglianza - 17 41 22 102 ?
- Se i numeri sono rappresentati in base B,
sappiamo che - (17)B 1?B17?B0 B7
- (41)B 4?B11?B0 4B1
- (22)B 2?B12?B0 2B2
- (102)B 1?B20?B12?B0 B22
- da cui... B74B12B2 7B10 B22
- ? Si ottiene unequazione di 2 grado B2 ? 7B ?
8 0 - Risolvendo ? 4932 81
- B (7 ? ?? )/2
94La rappresentazione dei dati e laritmetica degli
elaboratori
95Numeri interi positivi
- I numeri interi positivi sono rappresentati
allinterno dellelaboratore utilizzando un
multiplo del byte (generalmente 8 byte) - Se lintero si rappresenta con un numero di cifre
minore, vengono aggiunti zeri nelle cifre più
significative
Esempio 12 viene rappresentato in un byte come
00001100
96Numeri con segno
- Per rappresentare numeri con segno, occorre
utilizzare un bit per definire il segno del
numero - Si possono usare tre tecniche di codifica
- Modulo e segno
- Complemento a 2
- Complemento a 1
97Modulo e segno
- Il bit più significativo rappresenta il segno 0
per i numeri positivi, 1 per quelli negativi - Esiste uno zero positivo (000) e uno zero
negativo (100) - 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)
98Complemento a 2
- Il complemento a 2 di un numero binario (N)2 a n
cifre è il numero - Il complemento a 2 si calcola
- Effettuando il complemento a 1 del numero di
partenza (negazione di ogni cifra) 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 011111111? 01010111 10101000
10101001
28 28?1N 28?1?N 28?1?N?1
99Interi in complemento a 2
- I numeri positivi sono rappresentati (come) in
modulo e segno - I numeri negativi sono rappresentati in
complemento a 2 ? la cifra più significativa ha
sempre valore 1 - Lo zero è rappresentato come numero positivo (con
una sequenza di n zeri) - Il campo dei numeri rappresentabili varia da
?2n?1 a ?2n?1?1
Esempio numeri a 4 cifre
100Interi a 16 bit
- Numeri interi rappresentati su 16 bit in
complemento a 2
Il numero intero positivo più grande è
215?1(32767)10
0111 1111 1111 1111 0x 7 F F
F
Il numero intero negativo più piccolo è
?215(?32768)10
Il numero intero 1 è rappresentato come
1111 1111 1111 1111 0x F F F F
0000 0000 0000 0000
1 0000 0000 0000 0001
101Addizione binaria
- Le regole per laddizione di due bit sono
- Lultima regola è (1)2?(1)2 ? (10)2 (1?1?2)10
!!
0 0 0 0 1 1 1 0 1 1 1 0 con
riporto di 1
Esempio
102Sottrazione binaria ? 1
- Le regole per la sottrazione di due bit sono
- La sottrazione può divenire complicata quando si
ha una richiesta sulla cifra precedente a
sinistra, che è uno 0, loperazione si propaga a
sinistra fino alla prima cifra ad 1 del sottraendo
0 ? 0 0 1 ? 0 1 1 ? 1 0 10 ? 1 1
con prestito di 1 dalla cifra precedente a
sinistra
Esempio
103Sottrazione binaria ? 2
- Utilizzando la rappresentazione in complemento a
2, addizione e sottrazione sono trattate come
ununica operazione
- 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
104Rappresentazioni in complemento
- Sono utili perché loperazione di somma algebrica
può essere realizzata non curandosi del bit di
segno - In complemento a 1 (più semplice da calcolare)
- Zero ha due rappresentazioni 00000000 e 10000000
- La somma bit a bit funziona quasi sempre
- In complemento a 2
- Zero ha una sola rappresentazione
- La somma bit a bit funziona sempre
105Overflow
- Loverflow si ha quando il risultato di
unoperazione non è rappresentabile correttamente
con n bit - Per evitare loverflow 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
Esempio 5 bit ? ?16,?15
106Moltiplicazione binaria
- Le regole per la moltiplicazione di due bit sono
- Moltiplicare per 2n corrisponde ad aggiungere n
zeri in coda al moltiplicando
0 ? 0 0 0 ? 1 0 1 ? 0 0 1 ? 1 1
Esempio
107Divisione 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 - Dividere per 2n equivale a scorrere il numero a
destra di n posizioni le cifre scartate
costituiscono il resto
(
1 1 0 1 1 0 1 0 1 1 0 1
1 0 1 0 1 1 1 1 0 1 1 0 0
54 5?10 4
108Esempio
- Quesito Data una base B, si consideri il numero
x?(C5C4C3C2C1C0)B, dove le singole cifre valgono
- C5 ? B?1, C4 ? B?1, C3 ? B?1, C2 ? 0, C1 ? 0, C0
? 0 - Qual è la rappresentazione in base B del
risultato dellespressione (x/B3)?1? - Dividere per B3, che per qualsiasi base si
rappresenta come 1000, equivale a shiftare il
numero di tre cifre a sinistra - Rimangono quindi le tre cifre più significative,
tutte uguali a B?1 - Sommando 1, a causa dei riporti, si ottiene
quindi come risultato dellespressione 1000?B3,
qualsiasi sia il valore della base B
109Esercizi
- Esercizio 1
- Assumendo che un elaboratore rappresenti i
numeri interi con segno su quattro bit in
complemento a 2, si calcolino entrambi i membri
della seguente identità - (A?C)?B ? (A?B)?C,
- con A?7, B?5, C?7. Si ottiene lo stesso
risultato dal calcolo dei due membri? Discutere
le motivazioni della risposta. - Esercizio 2
- Si determini, se esiste, la base b di un sistema
di numerazione tale che (842)b ? (1202)10 - Si determini, se esiste, la base b ? 16 di un
sistema di numerazione tale che (725)b ? (626)b ?
(224)10
110Numeri in virgola mobile
- La rappresentazione dei numeri in virgola mobile
è in relazione con la notazione scientifica (es.
1.2?102?120) - La IEEE ha previsto uno standard per la
rappresentazione in virgola mobile
Eccesso vale 2t?1?1, se t è il numero di cifre
riservate alla caratteristica ? rappresentazione
interna dellesponente sempre positiva
111Singola precisione
- Il numero più grande rappresentabile è
2128?(2?2?23)?2129?6.81?1038 - Il più piccolo numero positivo è
2?126?2?23?2?149?1.4?10?45 - In totale si rappresentano 232 numeri distinti,
metà positivi, metà negativi - Circa metà dei numeri sono compresi fra ?1 e 1
(E?127lt0)
0 11111111 11111111111111111111111 2255?127
1.111111111111111111111111
0 00000000 00000000000000000000001 2?126
0.00000000000000000000001
223 valori
223 valori
223 valori
223 valori
0
1
2
4
0.5
0.25
112Laritmetica floating?point Addizione
- Metodo per il calcolo delladdizione
- Se le caratteristiche dei numeri sono diverse, si
considera il numero con caratteristica minore e - 1.1 Si trasla la mantissa di un posto a
destra - 1.2 Si incrementa la caratteristica di
1, fino a quando le due - La mantissa del risultato è ottenuta dalla somma
delle due mantisse - Se laddizione comporta un riporto oltre la cifra
più significativa, si trasla la mantissa del
risultato a destra di un posto, il riporto nel
bit più significativo, e si incrementa la
caratteristica di 1
caratteristiche sono uguali, e
corrispondono alla caratteristica del risultato
113Un esempio di addizione
- Supponiamo che per la rappresentazione
floatingpoint vengano utilizzati otto bit, di
cui uno per il segno, tre per la caratteristica e
quattro per la mantissa - La caratteristica del secondo operando è più
piccola di una unità, quindi la mantissa deve
scorrere di una posizione a destra - La caratteristica del risultato è 110 e la
mantissa è 1101 0100 10001 la caratteristica
deve essere aumentata di 1 e portata a 111, e la
mantissa del risultato traslata a destra di una
posizione
1001 ? 0100
114Laritmetica floating?point Moltiplicazione
- Metodo per il calcolo della moltiplicazione
- Si moltiplicano le due mantisse
- Si addizionano le due caratteristiche
- Si trasla a sinistra il prodotto delle due
mantisse fino ad ottenere un 1 come cifra più
significativa si diminuisce la caratteristica di
1 per ogni traslazione eseguita - Si tronca la mantissa al numero di bit utilizzati
nella rappresentazione la mantissa del prodotto
è il risultato del troncamento - Si sottrae leccesso alla somma delle
caratteristiche, ottenendo la caratteristica del
prodotto
115Un esempio di moltiplicazione
- Supponiamo che per la rappresentazione
floatingpoint vengano utilizzati otto bit, di
cui uno per il segno, tre per la caratteristica e
quattro per la mantissa - Moltiplicando le mantisse e sommando le
caratteristiche si ottiene - La mantissa del risultato deve essere traslata di
un posto a sinistra, e la somma delle
caratteristiche deve essere decrementata di 1
infine la mantissa deve essere troncata alle 4
cifre significative e leccesso (100) sottratto
alla caratteristica
M01110101 E111
116Laritmetica degli elaboratori ? 1
- Laritmetica interna degli elaboratori
differisce notevolmente dallaritmetica classica - Sebbene le stesse operazioni possano essere
realizzate secondo modalità diverse su
elaboratori diversi, si riscontrano alcune
caratteristiche comuni - Rappresentazione binaria dei numeri
- Rango finito dei numeri rappresentabili
- Precisione finita dei numeri
- Operazioni espresse in termini di operazioni più
semplici
117Laritmetica degli elaboratori ? 2
- Rango finito dei numeri rappresentabili
- Qualunque sia la codifica utilizzata, esistono
sempre il più grande ed il più piccolo numero
rappresentabile - I limiti inferiore e superiore del rango di
rappresentazione dipendono sia dal tipo di
codifica, sia dal numero di bit utilizzati - Se il risultato di unoperazione non appartiene
al rango dei numeri rappresentabili, si dice che
si è verificato un overflow (un underflow, più
precisamente, se il risultato è più piccolo del
più piccolo numero rappresentabile)
118Laritmetica degli elaboratori ? 3
- Precisione finita dei numeri
- La precisione della rappresentazione di un numero
frazionario è una misura di quanto essa
corrisponda al numero che deve essere
rappresentato - Negli elaboratori, i numeri frazionari sono
rappresentati in virgola mobile (floatingpoint),
utilizzando un numero finito di bit - È plausibile che un numero reale non ammetta una
rappresentazione finita, quindi dovrà essere
codificato in maniera approssimata - Negli elaboratori si rappresentano soltanto
numeri razionali (fino ad una data precisione)
119Laritmetica degli elaboratori ? 4
- Operazioni espresse in termini di operazioni più
semplici - La maggior parte degli elaboratori non possiede
circuiti in grado di eseguire direttamente tutte
le operazioni - La sottrazione si realizza per mezzo di una
complementazione e di unaddizione - La moltiplicazione si realizza per mezzo di una
successione di addizioni e di shift (traslazioni) - La divisione si realizza per mezzo di una
successione di shift e sottrazioni - Le operazioni più semplici sono eseguite
direttamente da appositi circuiti (in hardware)
le operazioni più complesse sono realizzate
mediante lesecuzione di successioni di
operazioni più semplici, sotto il controllo di
programmi appositamente realizzati, e
generalmente memorizzati permanentemente (in
firmware)
120Codifica dei caratteri alfabetici ? 1
- Oltre ai numeri, molte applicazioni informatiche
elaborano caratteri (simboli) - Gli elaboratori elettronici trattano numeri
- Si codificano i caratteri e i simboli per mezzo
di numeri - Per poter scambiare dati (testi) in modo
corretto, occorre definire uno standard di
codifica
121Codifica dei caratteri alfabetici ? 2
- Ovvero quando si scambiano dati, deve essere
noto il tipo di codifica utilizzato - La codifica deve prevedere le lettere
dellalfabeto, le cifre numeriche, i simboli, la
punteggiatura, i caratteri speciali per certe
lingue (æ, ã, ë, è,) - Lo standard di codifica più diffuso è il codice
ASCII, per American Standard Code for Information
Interchange
122Codifica ASCII
- 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) rappresentano unestensione della codifica - La tabella comprende sia caratteri di controllo
(codici da 0 a 31) che caratteri stampabili - I caratteri alfabetici/numerici hanno codici
ordinati secondo lordine alfabetico/numerico
123Caratteri 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
124Caratteri stampabili
125Tabella ASCII estesa
- I codici oltre il 127 non sono compresi nello
standard originario
126La codifica delle immagini ? 1
- Le immagini vengono anchesse codificate come una
sequenza di bit il processo di traduzione da
unimmagine ad una sequenza binari