Codifica dell’informazione
La codifica di un’informazione e la sua trasmissione ad un calcolatore sono i nuclei fondativi
dell’informatica. Affinché una qualsiasi informazione possa essere comunicata ad un calcolatore, è
necessaria la sua codifica, ovvero la sua rappresentazione attraverso un codice, contenente un insieme
limitato di simboli, e non ambiguo.
Sistema numerico binario
Il sistema numerico binario è stato scelto nell’informatica come il sistema di codifica di qualsiasi tipo di
informazione.
Notazione posizionale
Come molti altri sistemi numerici, il sistema binario gode della notazione posizionale. Ciò significa che ogni
numero può essere scritto come: −
= ∙ + ∙ + ⋯ + ∙ + ∙
−
dove: ∈ {, }
Difetti del sistema binario
Il sistema binario è utile se si deve comunicare ad un calcolatore, attraverso una determinata differenza di
potenziale, una data informazione. Tuttavia, esso presenta un difetto importante.
(10
− 1)
Nel sistema decimale, infatti, con cifre è possibile costruire un insieme di numeri.
( − )
Nel sistema binario, con le stesse cifre è possibile costruire un insieme di soli numeri.
Ciò significa che, utilizzando il sistema binario, per poter scrivere numeri (e dunque informazioni) molto
complessi sarà necessario una grande quantità di cifre. Questo giustifica la necessità di una grande
memoria per un calcolatore.
Numeri naturali
I numeri naturali vengono scritti attraverso il sistema di notazione posizionale già espresso.
Conversione bin ↔ dec
Conversione bin dec
La conversione da numero binario a numero decimale avviene in questo modo:
3 2 1 0
1010 = 1 ∙ 2 + 0 ∙ 2 + 1 ∙ 2 + 0 ∙ 2 = 6
Conversione dec bin
La conversione da numero decimale a numero binario avviene attraverso il metodo dei resti:
1. stabilire se il numero è pari o dispari, e segnare il resto che si ottiene dividendo per 2
2. dividere per due il numero, trascurando il resto
3. continuare con questo processo fino ad ottenere 1/0 come risultato della divisione.
Numeri pari e dispari
Nel sistema binario, un numero è:
.
- pari, se termina con
Ciò significa infatti che, qualsiasi siano le cifre che precedono l’ultima, nella conversione a numero
0
2 0.
decimale sarà moltiplicato per 10 = 2
.
- dispari, se termina con 0
2
Ciò significa infatti che nella conversione a numero decimale sarà sempre presente un .
11 = 3
Notazione abbreviata
Nel sistema numerico binario, alcuni numeri hanno una notazione abbreviata:
10
2
K (kilo): . 20
2
M (mega): .
30
2
G (giga): .
Numeri interi
I numeri interi vengono rappresentati nel sistema binario attraverso due modalità.
Modulo e segno
Nel metodo di Modulo e segno (M&S), il numero viene rappresentato per il suo valore assoluto, preceduto
da un bit di segno:
,
- che ha valore “+”
,
- che ha valore “−“
Ad esempio: 0 0000111 = +3
1 0000111 = −3
Ecco i primi 8 numeri positivi e negativi scritti con il metodo MS:
0000 1000
0 -0
0001 1001
1 -1
0010 1010
2 -2
0011 1011
3 -3
0100 1100
4 -4
0101 1101
5 -5
0110 1110
6 -6
0111 1111
7 -7
Complemento a due
Nel metodo di Complemento a due (C ), all’ultimo bit a sinistra (in rosso) della sequenza (il più influente)
2
viene assegnato un peso numerico:
,
- che ha valore “+”
,
- che ha valore “−“ e dunque inserisce nel numero una componente negativa che è più “pesante”
di tutte le altre
+ + +
3 2 1 0
0001 = 0 ∙ 2 + 0 ∙ 2 + 0 ∙ 2 + 1 ∙ 2 = 1
3 2 1 0
1001 = −1 ∙ 2 + 0 ∙ 2 + 0 ∙ 2 + 1 ∙ 2 = −7
Ecco i primi 8 numeri positivi e negativi scritti con il metodo C2:
0000 1111
0 -1
0001 1110
1 -2
0010 1101
2 -3
0011 1100
3 -4
0100 1011
4 -5
0101 1010
5 -6
0110 1001
6 -7
0111 1000
7 -8
0 1
In questo sistema, aggiungere a sinistra dei numeri positivi, o a sinistra dei numeri negativi, non
modifica assolutamente il risultato: 0001 = +1 = 00000001
1001 = −7 = 11111001
Conversione dec C 2
Per convertire un numero decimale negativo in un numero binario negativo si segue questo metodo:
- calcolare il numero naturale corrispondente:
0100111 = +39
1. invertire le cifre del numero e sommare “”:
1011000 +
0000001 =
1011001 → −39
2. lasciare invariate le cifre da destra fino al primo “” compreso, poi invertire tutte le altre:
1011001 → −39
Confronto M&S – C
2
Il sistema più utilizzato fra i due è il Complemento a due: nel sistema di M&S, infatti, lo zero ha due
1000),
rappresentazioni equivalenti (0000, e per questo gli intervalli di rappresentazione dei due sistemi
sono differenti: −1 −1
(−2 )
, 2
- M&S: − −
,
[− )
- C :
2
Il sistema Complemento a due permette dunque di rappresentare un numero in più.
Numeri frazionari
I numeri frazionari vengono rappresentati nel sistema binario attraverso due modalità.
Virgola fissa
Nel sistema virgola fissa, vengono resi disponibili bit per la parte intera e bit per la parte decimale (di
solito 5 per la parte intera, 4 per quella decimale): i numeri sono stabiliti a priori.
19,6875 = 10011,1011
Questo sistema di rappresentazione è semplice, ma può anche comportare degli sprechi, in quanto non
distingue il numero di cifre intere/decimale di cui i numeri sono effettivamente composti.
Virgola mobile
Nel sistema virgola mobile, o floating point, il numero di bit disponibili viene suddiviso in:
≥ 1 ,
- un numero per la mantissa un numero frazionario compreso tra -1 e 1
≥ 1
- un numero per l’esponente di una base implicita (2)
in modo che il numero frazionario sia rappresentato da:
= ∙ 2
= 3 = 3:
Ad esempio, ponendo base implicita 2, e = 011
= 010 3 3
010 2
= 010011 = 0.011 ∙ 2 = ∙ 2 = = 1.5
8 2
L’unico difetto reale di questo sistema è l’approssimazione che la quantità limitata di bit della mantissa
costringe ad esercitare.
Somma algebrica
La somma algebrica si esegue con i numeri binari esattamente come con i numeri naturali, facendo
1 + 1.
attenzione al riporto ogni volta che viene eseguita la somma Anche se il numero è negativo, non si
considera il primo numero avere peso negativo.
Overflow
L’overflow è un fenomeno aritmetico che si verifica quando il risultato di un’operazione eccede lo spazio
disponibile per poterlo rappresentare.
Overflow nell’addizione naturale
Nell’addizione naturale, si ha un overflow ogni volta che si genera un riporto addizionando i bit della
colonna più significativa. Esso è detto “riporto perduto”.
Overflow nell’addizione algebrica
Nell’addizione algebrica, si può avere overflow senza un “riporto perduto”, ma anche un “riporto perduto”
senza overflow, quando due addendi discordi generano un risultato positivo.
Comunque, l’overflow è prevedibile e rilevabile quando gli addendi sono concordi, e il risultato è discorde
rispetto a loro.
Ad esempio: 125 + 156 =?
01111101 +
10111000 =
(1) 00110101
Aritmetica standard
La definizione del sistema numerico binario non basta a creare un linguaggio privo di ambiguità ed
universale: è necessario anche istituire un sistema standardizzato di trattamento di questo linguaggio. Così
come ogni lingua, oltre al proprio alfabeto, ha le proprie regole grammaticali.
IEEE 754
Lo standard aritmetico 754 definisce:
- formati di rappresentazione del binario naturale, del complemento a due e della virgola mobile
- gli algoritmi di somma, sottrazione, prodotto per tutti i formati numerici
- metodi di arrotondamento dei numeri frazionari
- trattamento degli errori (overflow, divisione per 0)
Grazie a questo standard universale, i programmi sono trasportabili fra macchine diverse senza che per
questo i loro codici vengano letti diversamente.
Funzione dei bit
Lo standard definisce i bit destinati alla rappresentazione dei codici come divisi in:
- 1 bit di segno (S)
- alcuni bit per l’esponente (E)
- altri bit per la mantissa (M)
Eccesso K
Lo standard inserisce nel valore dell’esponente un eccesso per evitare che questo sia negativo:
−
= −
dove è il numero di bit dedicati all’esponente (E).
Mantissa normalizzata
Lo standard definisce anche la normalizzazione della mantissa (M), secondo cui essa viene rappresentata
fino al primo 1 (modificando di conseguenza l’esponente) per poter risparmiare 1 bit.
Altri sistemi numerici notevoli
Sistema ottale
Il sistema numerico ottale è utilizzato per abbreviare i codici di binari mediamente lunghi.
Anche il sistema ottale utilizza la notazione posizionale, rendendo semplice la conversione in numero
decimale. 2 1 0
534 = 5 ∙ 8 + 3 ∙ 8 + 4 ∙ 8 = 348
8 10
Sistema esadecimale
Il sistema numerico esadecimale è utilizzato per rendere più sintetiche grandi stringhe di cifre scritte sotto
forma di codice binario.
La conversione dal sistema esadecimale a quello binario avviene secondo la semplice regola per cui ogni
cifra esadecimale corrisponde a quattro cifre binarie. Dunque un’informazione lunga 48 cifre binarie può
essere ridotta a sole 12 cifre esadecimali. A = 0110 = 10
16 2 10
Informazione e memoria
Memoria
La memoria di un calcolatore può essere formalizzata come una matrice.
0 0 0 1
0 1 1 0
0 0 1 1
1 1 1 1
0 1 0 0
0 1 1 1
Tale matrice può avere un numero di righe ed un numero di colonne. Ogni sua casella è definita bit.
Parola di memoria ≥
Una parola di memoria (riga, nella matrice) è in grado di contenere una sequenza di bit.
Bit
Il bit è l’unità elementare di informazione (BInary digIT). Il bit è dunque uno spazio definito della memoria,
che può contenere una singola informazione sotto forma di unica cifra binaria: 1, oppure 0. Ad ogni bit è
associato un dispositivo che può assumere, in relazione al valore, due diversi stati di tensione (ad esempio,
alto/basso).
La memoria di un calcolatore si caratterizza dunque per il numero di bit che presenta su una parola di
memoria. Tale numero può essere variabile.
Una sequenza di 8 bit è definita byte.
Indirizzo
La memoria può essere utilizzata dal calcolatore in due modi. Esso può infatti:
- leggere l’informazione di una riga.
- scrivere un’informazione su una riga.
Affinché qualsiasi di queste due operazioni sia possibile è necessario però che il calcolatore conosca
l’indirizzo della riga a cui fare riferimento: quale riga cioè, fra le molteplici che la memoria presenta, debba
essere sottoposta al processo di lettura/scrittura.
Tipologie di memoria
Le memorie informatiche si suddividono in diverse tipologie:
- memoria centrale (RAM)
Questa memoria viene utilizzata per informazioni necessarie al momento (ad esempio durante
l’uso del calcolatore).
E’ caratterizzata dalla velocità, ma dall’impossibilità di conservare dati.
- memoria di massa (ROM)
Questa memoria viene utilizzata per conservare le informazioni anche quando il calcolatore è
spento. E’ caratterizzata però dalla lentezza.
Le informazioni vengono conservate anche senza che il calcolatore riceva corrente, in quanto
qualsiasi memoria di massa possiede dei principi elettromagnetici che “incidono” su di essa le
informazioni sotto forma di 0 ed 1 a seconda della variazione del campo magnetico esercitato.
Fra le memorie di massa si ricordano le più moderne memorie a stato solido, che sono più veloci e
resistenti perché il processo di scrittura dei dati non avviene per via meccanica, ma elettronica.
Digitalizzazione
La digitalizzazione è il processo, caratteristico dell’informatica, che permette di trasmettere o semplificare
informazioni complesse attraverso codici di informazioni semplici. Gran parte dell’informatica si incentra
sul tentativo di analizzare i dati della realtà, o di riprodurli in modo digitale.
Errore e approssimazione
Nella nostra epoca, pressoché tutto può essere digitalizzato: immagini, suoni, odori, fenomeni fisici di ogni
tipo, possono essere letti e analizzati da un computer, piuttosto che riprodotti da vari dispositivi.
Tuttavia, è necessario comprendere che la digitalizzazione comporta, per forza di cose, un’approssimazione
e di conseguenza un errore, necessario a dover ridurre i fenomeni della realtà ad una sequenza di codici
binari.
Principi della digitalizzazione
La digitalizzazione di solito consiste in due fasi ben distinte:
4. la codifica di un fenomeno fisico in un codice binario
5. la riproduzione di un codice binario attraverso un dispositivo per simulare un fenomeno fisico
Generalmente, possiamo affermare che la digitalizzazione può avvenire grazie a dispositivi che, se
sottoposti agli effetti di un fenomeno fisico, chiudono circuiti elettronici che, attivandosi, comunicano al
calcolatore una sequenza di impulsi elettrici caratteristica, legata ad uno specifico carattere, ad un colore o
ad un’onda sonora.
La sequenza scorre attraverso il “bus”, una rete all’interno del calcolatore a cui attingono tutti i suoi
componenti e dispositivi. Dal bus, la sequenza viene registrata nella memoria di massa del calcolatore, e
classificata come sequenza grafica, video o audio (o di altri tipi).
Se dev’essere riprodotta, la sequenza viene comunicata dalla memoria di massa a quella un dispositivo
finalizzato alla riproduzione (come una scheda video/audio), e da qui riprodotta attraverso i mezzi
necessari.
Segni grafici – immagini – video
Se il “fenomeno fisico” è un segno grafico, sia esso un carattere digitato sulla tastiera, una singola
immagine o una sequenza di immagini (video), il fenomeno non cambia: la sequenza di bit in codice binario
viene trasmessa alla scheda video del calcolatore, che a sua volta la trasmette al monitor.
Per le immagini o i segni grafici, le sequenze di bit hanno valore in quanto comunicano al monitor come
accendere i pixel che lo compongono: questi infatti sono composti da tre bande di tre colori diversi (rosso,
verde, blu), e a seconda dell’intensità di ogni colore possono formare qualsiasi tonalità. Dunque le
sequenze trasmesse dalla scheda video al monitor non sono altro che triplette di valori che indicano
l’intensità luminosa da assegnare a ogni banda.
Programmazione
Introduzione
Una volta definito un linguaggio con cui trasmettere informazioni ad un calcolatore, è necessario trovare un
modo per utilizzare il calcolatore per il suo vero scopo: risolvere problemi. La programmazione consiste
nell’istituzione di una logica nell’eseguire operazioni per la risoluzione di un problema. Tale logica deve
essere rigorosa e non ambigua, in modo da essere perfettamente compresa dalla macchina.
Algoritmo
Il primo passo di una programmazione è la scrittura di un algoritmo: questo rappresenta, in forma
totalmente teorica e comprensibile dall’uomo, la strategia di risoluzione di un problema, espressa in
termini di operazioni logiche.
Linguaggio di programmazione
Per trasmettere un algoritmo, ossia in definitiva una serie di istruzioni, ad un calcolatore, è necessario
tradurre tale algoritmo in una serie di codici binari che la macchina possa comprendere e conservare.
Un linguaggio di programmazione (ne esistono diversi) permette di scrivere in termini logici ancora
comprensibili dall’uomo ciò che, in seguito, verrà letto dalla macchina come una sequenza di codici binari.
Compilatore e interprete
Una volta scritto un programma, sono due le modalità di procedere:
6. un programma detto compilatore analizza il programma e, se questo è corretto, lo traduce in un
file .exe (eseguibile) composto da una sequenza di codici binari, successivamente trasmessa alla
memoria del calcolatore.
7. un programma detto interprete traduce in codici binari le istruzioni scritte nel linguaggio di
programmazione durante la scrittura, anche se il programma non è finito.
Linguaggio macchina
In entrambi i casi, il file sorgente, scritto in linguaggio di programmazione ad alto livello, viene tradotto in
linguaggio macchina, ovvero in un codice binario eseguibile dal processore del calcolatore.
Algebra di Boole
L’algebra di Boole, inventata dall’omonimo matematico a metà dell’Ottocento, è una branca della
matematica che si basa su operazioni logiche.
Vero e falso
L’algebra di Boole si basa su due operandi logici fondamentali:
8. vero, associato in informatica al valore 1
9. falso, associato in informatica al valore 0
Operatori logici
Oltre agli operandi, nell’algebra di Boole si utilizzano anche tre operatori logici fondamentali: OR, AND e
NOT. Questi sono definiti dalle tabelle di verità, che associano alle quattro possibili coppie di operandi un
risultato.
OR
L’OR, o somma logica, è d
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.