Title: Nessun titolo diapositiva
1 ENIAC Il primo calcolatore elettronico, lENIAC
? Electronical Numerical Integrator And
Calculator ? nacque per esigenze belliche (per il
calcolo di tavole balistiche). Venne
commissionato dal Dipartimento di Guerra degli
Stati Uniti allUniversità della Pennsylvania, ed
il suo prototipo fu realizzato alla fine della
seconda guerra mondiale, nel 1946. LENIAC, per
la cui costruzione furono usate 18000 valvole
termoioniche, occupava una stanza lunga più di 30
metri e dissipava una quantità enorme di energia
elettrica. Limpiego di componenti elettroniche,
tuttavia, lo rendeva capace di eseguire 300
moltiplicazioni al secondo, molte più dei
precedenti calcolatori elettromeccanici.
La rappresentazione dei dati e laritmetica
degli elaboratori
2Sommario
UNIVAC Il primo calcolatore concepito ed
impostato come prodotto commerciale, fu
realizzato da Eckert e Mauchly (gli stessi
costruttori dellENIAC) per lUfficio Centrale di
Statistica degli Stati Uniti. Lalgebra di
Boole Fu teorizzata dal matematico inglese George
Boole (1810?1864) nel lavoro Analisi Matematica
della Logica, pubblicato nel 1847. Include un
insieme di operazioni su variabili logiche (o
variabili booleane), che possono assumere i due
soli valori true e false, indicati da 1 e 0. Le
tecniche sviluppate nellalgebra booleana possono
essere applicate allanalisi ed alla
progettazione dei circuiti elettronici, poiché
essi sono realizzati con dispositivi che possono
assumere solo due stati. Su insiemi di costanti e
variabili logiche possono essere definite
funzioni che hanno esse stesse la caratteristica
di assumere due soli valori. La definizione di
una funzione booleana può essere effettuata per
mezzo di una tabella di verità, che indica il
valore della funzione in corrispondenza di ogni
possibile configurazione dei valori degli
argomenti. Le funzioni booleane possono essere
scritte e manipolate anche con metodi algebrici,
dato un insieme di funzioni (o operazioni)
elementari tramite le quali poter esprimere ogni
altra funzione.
- 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 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
- Anche se la presenza invasiva dellinformatica
nella vita di tutti i giorni è un fenomeno
relativamente recente, non recente è 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 ritrovati 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 filosofico del 600 - Pascal e Leibniz non solo affrontarono il
problema, già studiato da Cartesio, di
automatizzare il ragionamento logico? matematico,
ma si cimentarono nella realizzazione di semplici
macchine per calcolare (capaci di effettuare
somme e sottrazioni)
5Cenni storici ? 2
- La macchina alle differenze, concepita da Babbage
nel 1833, rappresenta il primo esempio di
macchina programmabile di utilità generale - La prima programmatrice nella storia
dellinformatica è Ada Augusta Byron, contessa di
Lovelace - In seguito, lo stesso Babbage progetta la
macchina analitica (mai realizzata, troppo
complessa e critica la sua costruzione per le
tecnologie meccaniche dellepoca)
6Cenni storici ? 3
- 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
7Cenni storici ? 4
- 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 Leibniz e da Boole)
8Cenni storici ? 5
- Durante la seconda guerra mondiale, fioriscono i
progetti di elaboratori da utilizzarsi per scopi
bellici
- Enigma, realizzata dai tedeschi 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
9Cenni storici ? 6
- Con linvenzione del tubo a vuoto (1904), del
transistor (1947) e, infine, dei circuiti
integrati (1969), levoluzione dei computer
divenne inarrestabile - Attualmente la potenza di calcolo degli
elaboratori decuplica ogni 5?6 anni (ma non può
durare la tecnologia attuale ha ormai pressoché
raggiunto i suoi limiti)
10Cenni storici ? 7
- 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 rappresentati,
allinterno dellelaboratore, in maniera
indistinguibile - La diffusione dei calcolatori a livello mondiale
è avvenuta negli anni 60 e 70
11Cenni storici ? 8
UNIVAC (1952)
Whirlwind (1949)
IAS (1952)
12Cenni storici ? 9
- 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
- Bancomat e carte di credito
- Lavatrici e forni a microonde
- ...
13Cenni storici ? 10
- 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 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 - Recentemente, 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
estremamente elementari le reti neurali, capaci
di simulare il comportamento del cervello
umano, sulla base degli studi di McCulloch e
Pitts (1943)
14Cenni storici ? 11
Cray 1 (1976)
Cray X1 (2002)
Portatile e Palmare (oggi)
15Frasi celebri ed altro
- Penso che ci sia mercato nel mondo per non più
di cinque computer. (Thomas Watson, Presidente
di IBM, 1943) - Ho girato avanti e indietro questa nazione (USA)
e ho parlato con la gente. Vi assicuro che questa
moda dellelaborazione automatica non vedrà
lanno prossimo. (Editor di libri scientifici di
Prentice Hall, 1947) - Nel futuro i computer verranno a pesare non più
di una tonnellata e mezzo. (Popular Mechanichs,
1949) - 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)
16Che 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 stia
rapidamente diventando parte integrante di tutte
le 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
17Che cosè linformatica ? 2
- Linformatica non è, quindi, la scienza e la
tecnologia 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)
18Larchitettura alla 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...
- ...la descrizione delle operazioni da eseguire su
di essi (nellordine secondo cui devono essere
eseguite) il programma, la ricetta usata
dallelaboratore per svolgere il suo compito - Il programma viene interpretato dallunità di
controllo - Modello di Von Neumann
-
19La 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)
20Ancora 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 unattività
concettualmente 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 informazioni altrimenti intrattabili
21Lalgebra di Boole
22Algebra Booleana
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 le
parentesi vengono utilizzate nel modo consueto.
- 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 - Si definiscono delle operazioni fra i valori
booleaniAND, OR, NOT sono gli operatori
fondamentali
23Loperazione 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
0?0 ? 00?1 ? 11?0 ? 11?1 ? 1
0
1
00
01
1
1
1
0
10
11
24Loperazione 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
0
0
0
1
0?0
0?1
0
1
1
1
1?1
1?0
25La negazione NOT
- Si definisce loperatore di negazione
(NOT)loperatore inverte il valore della
costante su cui opera - Dalla definizione
0 ? 1 1 ? 0
26Variabili 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
27AND e NOT con variabili binarie
Lelemento x NOT(x) viene detto complemento
di x. Il complemento è unico. 0 è lelemento
neutro per loperazione di OR 1 è lelemento
neutro per lAND. Gli elementi neutri sono unici.
- Date n variabili binarie indipendenti, il loro
prodotto logico (AND) è - La negazione di una variabile x è
28Alcune identità
- Si verificano le uguaglianze
- Ad esempio
x 1 ? 1x 0 ? x x x ? x
x ? 1 ? xx ? 0 ? 0 x ? x ? x
Legge dellidempotenza
x ? 1 ? x
x ? 0
x ? 1
0?1 ? 0
1 ? 1 ? 1
OK!
29Altre 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
30Configurazioni 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
000 001 010 011100 101 110 111
x1x2x3
x1x2x3
010
31Funzioni 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)
y x1x2
32Una 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
33Un esempio lo XOR
- ESEMPI
- La legge dellassorbimento 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. 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.
- 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
34Un 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
A
B
B
0
0
0
0
1
1
1
1
A
A
B
B
L ? A?B?A?B
A1 B0
A1 B1
35Un esercizio
- Progettare un circuito per accendere e spegnere
una lampada da uno qualsiasi di tre interruttori
indipendenti
36Analisi delle combinazioni
- Si considera cosa accade a partire dalla
configurazione di partenza, cambiando lo stato di
un interruttore per volta
L 1
L 0
A
B
C
A
B
C
1
0
1
0
0
1
L 1
L 0
L 0
A
B
C
A
B
C
A
B
C
1
1
1
0
0
0
1
1
0
L 1
L 0
A
B
C
A
B
C
1
0
0
1
0
1
37Scrittura 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
38Come 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)
C
C
B
B
B
B
A
A
C
C
C
B
C
B
A
A
B
C
B
C
1 0 1
1 0 0
39Esercizi
- 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 di 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.
40Esercizi (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 costa meno della 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.
41Sistemi di numerazione
42Ancora un po di preistoria
- 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, 12,
15, 20, 30 e 60 - Da notare che il 7 non compare mai nelle basi di
numerazione e, in effetti, ebbe significati
particolari, anche religiosi, presso i popoli
antichi - La base 12 è ancora utilizzata in certe misure di
tempo, 60 nella misurazione di angoli e tempo
43E di storia
- Tra le prime testimonianze certe dellutilizzo di
concetti numerici 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. - 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
44I numeri nellantico Egitto ? 1
- La matematica egizia utilizzava la base 10, ed
impiegava simboli diversi per rappresentare le
diverse 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
45I numeri nellantico Egitto ? 2
- I numeri venivano formati raggruppando i simboli,
generalmente posti in ordine dal più piccolo al
più grande, da sinistra a destra - Il sistema di numerazione non è, tuttavia,
posizionale - Lordine dei simboli che rappresentano le potenze
del 10 può essere alterato senza cambiare il
valore della quantità rappresentata - Lordine è una sorta di convenzione linguistica,
senza significato matematico
46I numeri nellantico Egitto ? 3
131.200
47I numeri nellantico Egitto ? 4
- 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
sottindende la base due - si scompone il moltiplicatore in potenze di 2,
poi si raddoppia il moltiplicando tante volte
quante necessario, e infine si esegue la somma
48I numeri nellantico Egitto ? 5
13
91
49I numeri in Mesopotamia ? 1
- Appartengono alla civiltà dei Sumeri varie
tavolette che contengono i più antichi segni
numerali usati dalluomo e risalgono al 3500?3000
a.C. - I simboli fondamentali usati nella numerazione
sumera corrispondono ai numeri 1, 10, 60, 600,
3600, 36000 - La numerazione è additiva, cioè i numeri si
scrivono disponendo uno accanto allaltro i
simboli fondamentali
50I numeri in Mesopotamia ? 2
- Un ruolo speciale spetta ai numeri 10 e 60
caratteristica ereditata dal sistema babilonese - I Babilonesi usavano infatti la scrittura
cuneiforme, con due simboli fondamentali, un
cuneo verticale per le unità e una parentesi
uncinata per le decine 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 in base 60
51I numeri in Mesopotamia ? 3
52I numeri in Mesopotamia ? 4
- 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
53I 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
54I 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
55I numeri nellantica Grecia ? 3
67.766.776
56I 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
57I 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
58DallIndia 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
59DallIndia 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.
60DallIndia 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.
61DallIndia 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
62Sistemi 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 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
63Sistemi 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
64Numeri 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
102 100 valori
2 cifre da 0 a 102?1 99
Esempio base 2
2 cifre da 0 a 22?1 3
22 4 valori
65Il sistema binario (B2)
- 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
66Dal bit al byte
- Un byte è un insieme di 8 bit (un numero binario
a 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
67Dal 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)
68Da 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
69Da decimale a binarioNumeri 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
70Da binario a decimale
- 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
- 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
(101011)2 (43)10
71Sistema 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
72Da 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
73Dai 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
74Da 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 x 4 16 bit
75Esempi ? 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 ad esempio,
(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
76Esempi ? 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
77Esempi ? 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
(79)/2 8
È la soluzione!
(7?9)/2 ?1
Non può essere una base
78La rappresentazione dei dati e laritmetica
degli elaboratori
79Numeri interi positivi
- I numeri interi positivi sono rappresentati
allinterno dellelaboratore utilizzando un
multiplo del byte (generalmente 4/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
80Numeri 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
81Modulo 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)
82Complemento 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?N1
01010111
complemento a 1
10101000
1
10101001
83Interi 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 è da ?2n?1 a
2n?1?1
Esempio numeri a 4 cifre
84Interi 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
85Addizione binaria
- Le regole per laddizione di due bit sono
- Lultima regola è (1)2(1)2 (10)2 (112)10
!!
0 0 0 0 1 1 1 0 1 1 1 0 con
riporto di 1
Esempio
riporti
1 11 1 01011011 01011010 10110101
86Sottrazione 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
87Sottrazione binaria 2
- Utilizzando la rappresentazione in complemento a
2, addizione e sottrazione sono trattate come
ununica operazione
si trascura il bit n 1
N1?N2 N1(2n?N2)?2n
complemento a 2 di N2 rappresentazione di (?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 1110111001100
(12)10
88Rappresentazioni in complemento
- Sono utili perché loperazione di somma può
essere realizzata non curandosi 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
- In complemento a 2
- Zero ha una sola rappresentazione
- La somma bit a bit funziona sempre
89Overflow
- 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
Punteggio nei vecchi videogame sorpresa per i
campioni!
0111 1111 1111 1111 1 1000 0000 0000 0000
32767 1 ?32768
90Moltiplicazione 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
1100111 x 101 1100111 0000000
1100111 1000000011
110011 x 10000 1100110000
? 16 24
91Divisione 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
5116 3 con resto 3
110011 ? 10000 11 con resto 11
92Esempio
- 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
93Esercizi
- 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 (AB)?C,
- con A7, B5, C7. 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
94Numeri in virgola mobile
- La rappresentazione dei numeri in virgola mobile
è in relazione con la notazione scientifica (es.
1.2?102120) - La IEEE ha previsto uno standard per la
rappresentazione in virgola mobile
- singola precisione (32 bit 4 byte)
- doppia precisione (64 bit 8 byte)
- quadrupla precisione (128 bit 16 byte)
Singola precisione
0
31
22
23
23 bit
8 bit
Mantissa
Segno
Esponente
(o Caratteristica)
Il valore è
Eccesso vale 2t?1?1, se t è il numero di cifre
riservate alla caratteristica ? rappresentazione
interna dellesponente sempre positiva
(?1)S 1.M?2E?127 se E?0 (?1)S 0.M?2?126 se
E0
95Singola 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.5
0
1
2
4
96Laritmetica 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
97Un 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
3.25
N (?1)s0.M?2E?4
1.125
1001 ? 0100
Codifica il numero 4 (dato che la caratteristica
si rappresenta in eccesso a 4), ma il risultato
corretto è 4.375 errore di troncamento
98Laritmetica 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
99Un 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
0.203125
N (?1)s0.M?2E?4
1.125
M01110101 E111
Codifica il numero 0.21875, ma il risultato
corretto è 0.228515625 errore di troncamento
100Laritmetica 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
101Laritmetica 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)
102Laritmetica 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)
103Laritmetica 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)
104Codifica 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
105Codifica dei caratteri alfabetici 2
- 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
106Codifica 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