Sei sulla pagina 1di 16

SISTEMI DI ELABORAZIONE

DELLE INFORMAZIONI

PROF. GIUSEPPE PORCARO


PRO.SSA M ARIA TERESA TATTOLI

1
SOMMARIO

I SISTEMI DI ELABORAZIONE ..............................................................................3


ARCHITETTURA DELLHARDWARE DI UN SISTEMA DI ELABORAZIONE ......................4
La CPU ...................................................................................................................... 5
La memoria centrale ................................................................................................... 6
Il BUS ....................................................................................................................... 7
LA RAPPRESENTAZIONE DELLE INFORMAZIONI .....................................................9
Lelettronica digitale dei computer ................................................................................ 9
Rappresentazione binaria dellinformazione ................................................................... 9
Il byte ...................................................................................................................... 9
I sistemi di numerazione ........................................................................................... 10
Rappresentazione binaria dei numeri negativi .............................................................. 13
Rappresentazione di numeri frazionari ........................................................................ 14
La Codifica dei Caratteri ............................................................................................ 15

2
I SISTEMI DI ELABORAZIONE

Un sistema di elaborazione, o computer o calcolatore elettronico, un sistema in grado di


risolvere automaticamente problemi e trattare in maniera automatica informazioni. per un
mero esecutore di istruzioni e, in quanto tale, ha bisogno di essere istruito o programmato
dall'esterno. Le sequenze di istruzioni impartite al computer prendono il nome di programmi.
In un sistema di elaborazione si possono cos identificare due componenti principali:
 lhardware
 il software

Lhardware (parte dura) la parte fisica del computer, linsieme di tutti i componenti di natura
elettronica e meccanica che lo costituiscono (lunit centrale, con tutti i suoi componenti, la
tastiera, il mouse, il monitor, ecc.); essi sono visibili e tangibili.

Il software si contrappone allhardware come parte morbida del sistema, dal momento che
comprende tutte quelle parti che non hanno una consistenza fisica, in particolare i programmi
che permettono allo strumento di operare.
Si distingue in:
 software di base
 software applicativo

Il software di base composto da un insieme di programmi in grado di far funzionare la


macchina, gestendo e ottimizzando luso delle risorse del sistema e fornendo tutta una serie di
funzionalit di supporto per lutente; software di base il Sistema Operativo (S.O.), senza il
quale il computer non utilizzabile.
Il software applicativo invece linsieme dei programmi che non sono compresi nel sistema
operativo, ma che devono essere installati dall'utente per svolgere compiti specifici. Per
esempio, sotto Windows, il programma di videoscrittura Microsoft Word forse l'applicativo pi
diffuso. Word non fa parte di Windows ma deve essere acquistato a parte e installato sulla
macchina, su cui deve essere gi presente il sistema operativo. Sono programmi applicativi
anche gli antivirus, i programmi per la navigazione in Internet e per la posta elettronica, i
programmi di grafica e per il ritocco fotografico, i lettori audio/video, le applicazioni aziendali
(fatturazione, gestione del personale, gestione clienti e fornitori), i videogiochi, ecc.
A rigore fanno parte degli applicativi anche alcune utilit che si installano assieme a Windows
stesso, come il Blocco note, la Calcolatrice, Paint, WordPad; si tratta infatti di semplici
programmi che non sono essenziali per il funzionamento della macchina (potrebbero anche
essere rimossi senza comprometterne in alcun modo il funzionamento), ma vengono installati
assieme al sistema operativo soltanto per offrire all'utente alcune semplici applicazioni di base.
Infatti, se su un computer si trovasse esclusivamente il sistema operativo e nessun
programma applicativo, la macchina funzionerebbe perfettamente, ma l'utente non sarebbe
nelle condizioni di adoperarla in modo utile.
Sulla base di questi suoi componenti, si pu sviluppare la seguente struttura per
piattaforme di un sistema di elaborazione:

Software applicativo

Software di base

Hardware

La piattaforma hardware quella al livello pi basso; la pi lontana dallutente ed quella su


cui operano le altre piattaforme. Al livello immediatamente superiore c il software di base,
che gestisce le risorse dellhardware, mettendole a disposizione dellutente. Linstallazione del
software applicativo pu avvenire unicamente sul software di base, per cui quella del software
applicativo lultima piattaforma, la pi vicina allutente.

3
ARCHITETTURA DELLHARDWARE DI UN SISTEMA DI ELABORAZIONE

Un calcolatore elettronico una macchina estremamente complessa, costituita da centinaia di


componenti hardware. Lo schema di funzionamento per piuttosto semplice:
Lunit centrale lunit di elaborazione vera e
propria, mentre la periferia linsieme delle
periferiche (P1, P2, , Pn), che sono dispositivi
che mettono in collegamento lunit centrale con
il mondo esterno.

Le periferiche si classificano in:


- periferiche di input (ingresso), per
linserimento dei dati da elaborare nellunit
centrale; ne sono esempi la tastiera, il
mouse, lo scanner, il microfono.
- periferiche di output (uscita), per linvio dei
risultati delle elaborazioni dallunit centrale
allesterno; ne sono esempi il monitor, la
stampante, il plotter, gli altoparlanti.
- periferiche di input/output, che
consentono sia linput che loutput; ne sono
esempio le unit di memorizzazione di
massa (memorie secondarie), usate per
memorizzare in modo permanente programmi
e dati, che vengono sia letti che scritti in tali unit. La memoria di massa pi importante
sicuramente il disco rigido (hard disk); molto diffuse sono attualmente le pen drive, che
stanno prendendo il posto dei floppy disk, ormai in disuso dopo oltre 20 anni di predominio.

Lunit centrale invece cos strutturata:

4
Lo schema si basa su quattro componenti fondamentali:

 CPU (Central Processing Unit Unit centrale di elaborazione), che svolge le


funzioni di elaborazione e controllo. Essa contiene i dispositivi elettronici in grado di
acquisire, interpretare ed eseguire i programmi, elaborando i dati che arrivano
dall'esterno.
 Memoria centrale (o memoria principale), in cui vengono memorizzati sia i
programmi che devono essere eseguiti che i dati che devono essere elaborati dai
programmi.
 Devices, che sono i dispositivi dinterfacciamento verso lesterno; gestiscono lo
scambio d'informazione fra l'elaboratore e le periferiche.
 Bus, che linsieme dei collegamenti elettrici che si occupano della comunicazione fra i
vari componenti, realizzando un supporto fisico per la trasmissione dei dati tra di essi.

C poi il Clock, un temporizzatore che


scandisce i tempi di esecuzione delle
operazioni da parte delle varie unit,
sincronizzandone le attivit. Il segnale del
clock periodico; unonda quadra che
oscilla per centinaia di milioni di volte al
secondo. Il segnale costituito da un livello
di tensione che, periodicamente, in modo
regolare, fa una rapida transizione dal valore zero ad un valore che generalmente coincide con
la tensione di alimentazione del circuito, rimane a questo livello per un certo tempo e poi in
modo altrettanto rapido ritorna a livello zero, dove rimane ancora per un certo tempo e poi il
ciclo si ripete. La commutazione di tutti i circuiti logici avviene durante la transizione di questa
tensione.

La CPU

La CPU (Central Processing Unit Unit Centale di Elaborazione) senzaltro la parte pi


importante e complessa di un calcolatore elettronico. Essa controlla il flusso dei dati in tutto il
sistema ed esegue i programmi.
cos strutturata:

E composta dalle seguenti unit:


 Serializzatore (S) o Unit di Controllo (CU - Control Unit)
 Unit Aritmetico-Logica (ALU - Arithmetic Logic Unit).
 Memoria Locale (ML), composta da una serie di piccole e velocissime unit di
memorizzazione chiamate Registri.

Il serializzatore gestisce la sequenza delle operazioni che la CPU deve compiere per eseguire
un programma; tali operazioni sono:
1. Fase di caricamento (fetch): il serializzatore legge dalla memoria centrale la prossima

5
istruzione del programma da eseguire.
2. Fase di decodifica (decode): il serializzatore
interpreta listruzione e la traduce in singole operazioni
(microistruzioni) da svolgere, individuando i dati da
utilizzare.
3. Fase di esecuzione (execute): le unit interessate
allesecuzione dellistruzione vengono attivate,
eventualmente vengono caricati i dati necessari e/o
scritti i risultati delloperazione.
I passi da 1 a 3 si ripetono fino al raggiungimento di
un'istruzione di stop (es. la fine del programma) o fino al
verificarsi di un errore.

Compito dell'unit aritmetico-logica eseguire le operazioni aritmetiche (addizioni, sottrazioni,


ecc.) e logiche (come i confronti e le operazioni dellalgebra di Boole AND, OR, NOT).

Per tutte le operazioni, la CPU utilizza i registri per depositare temporaneamente i dati, le
istruzioni e gli indirizzi per accedere alla memoria centrale.

La memoria centrale

Come gi detto, tutti i programmi applicativi che devono essere eseguiti (normalmente
residenti in memoria di massa) e i dati che devono essere elaborati devono essere caricati
nella memoria centrale, da cui vengono poi prelevati dalla CPU in fase di esecuzione.
Lhardware e i sistemi operativi dei moderni sistemi di elaborazione consentono di caricare in
memoria centrale contemporaneamente pi programmi da eseguire.

Allinterno del computer vi sono in realt due tipi di memoria:


- la RAM, che la memoria centrale propriamente
detta. RAM sta per Random Access Memory,
BIOS ROM cio memoria ad accesso casuale. Si parla di
accesso casuale (o accesso diretto) perch
possibile accedere direttamente ad ogni cella
dinformazione (denominata locazione) che
NUCLEO DEL S.O.
compone la memoria e il tempo impiegato per
accedervi non dipende dalla posizione in cui essa si
PROG1 trova, ma lo stesso per tutte le celle. La RAM
una memoria volatile: i suoi componenti
PROG2 elettronici sono tali da perdere la carica quando si
toglie la corrente, per cui si perde anche
linformazione in essi contenuta.

- la ROM (Read Only Memory memoria di sola
R lettura), che una memoria permanente e non
PROGn A voltatile; in essa risiede il BIOS, un insieme di
M programmi predisposti dal costruttore e che
DATI1 governano lavvio della macchina al momento
dellaccensione. Tra questi vi il programma di
bootstrap, che si occupa di avviare il S.O., del
DATI2 quale viene caricato, dal disco rigido, il nucleo
nella RAM. Il nucleo linsieme dei comandi base
del S.O., che restano residenti in memoria centrale
fino allo spegnimento. Tutte le altre componenti
del S.O. rimangono invece nel disco rigido e
DATIn
vengono caricati in memoria centrale solo quando
devono essere eseguite.

La dimensione della memoria centrale (denominata capacit) fondamentale ai fini della


velocit del computer: se la memoria centrale non dovesse pi aver spazio disponibile per le
esecuzioni richieste, sar utilizzato il disco rigido, in cui sar temporaneamente spostata una

6
parte del contenuto della memoria centrale, in modo da liberare lo spazio necessario alle nuove
elaborazioni; si parla in questo caso di gestione della memoria virtuale.
Il disco rigido per notevolmente pi lento della memoria centrale, per cui tanto pi si accede
ad esso, tanto pi diminuiscono le prestazioni del sistema in termini di velocit.

Il BUS

D1, D2, Dn individuano le devices che controllano le periferiche.

Il bus un insieme di canali che permettono a periferiche e componenti del sistema di


dialogare tra loro. Si tratta di una serie di connessioni elettriche, ognuna delle quali pu
trasmettere cifre binarie (0 o 1) in successione.

Il bus articolato in:


bus dati
bus indirizzi
bus comandi (o bus di controllo)

Il bus dati il bus sul quale transitano dati e informazioni, che possono essere valori numerici,
valori letterali (stringa), istruzioni (codici dei programmi). usufruibile da tutti i componenti
del sistema, sia in scrittura sia in lettura. quindi bidirezionale.

Il bus indirizzi il bus attraverso il quale la CPU invia lindirizzo per individuare le unit a cui
sono rivolti dati e comandi; sia le celle della memoria centrale, sia le devices che controllano le
periferiche di Input/Output sono infatti identificate da indirizzi, tramite cui possibile fare

7
riferimento ad esse. La trasmissione dei dati, ad esempio per operazioni di lettura/scrittura,
avviene poi tramite il bus dati.
Il bus indirizzi fruibile in scrittura solo dalla CPU ed in lettura dagli altri componenti, in
quanto tramite questo bus viene dato solo l'indirizzo della cella, che deciso dalla CPU.
quindi monodirezionale.

Il bus controlli un insieme di collegamenti il cui scopo coordinare le attivit del sistema.
Tramite queste linee, la CPU pu decidere, ad esempio, quale componente deve essere attivato
per scrivere o leggere sul bus dati in un determinato momento o se un led si deve accendere
sulla tastiera, etc.
Senza un controllo da parte dalla CPU si verrebbero a creare conflitti e collisioni.

8
LA RAPPRESENTAZIONE DELLE INFORMAZIONI

Lelettronica digitale dei computer

I componenti base dei computer (CPU, memorie, devices) sono


realizzati attraverso componenti elettronici digitali, che hanno la
caratteristica di operare solo su due livelli: on/off, assenza o
presenza di tensione (es.: 0-5V) o di corrente, assenza o
presenza di carica elettromagnetica, o, semplicemente, 0 o 1.
Questa unit elementare dinformazione, che potremmo
rappresentare come un interruttore (chiuso=1, aperto=0),
prende il nome di bit (binary digit, cio cifra binaria).
Si potrebbe allora pensare, ad esempio, alle celle della memoria
centrale, ciascuna delle quali contiene in genere 8 bit, come ad
una sequenza di interruttori, chiusi o aperti a seconda che si
debba memorizzare il bit 1 o il bit 0 (immagine a destra).

Rappresentazione binaria dellinformazione

Come detto, con un unico bit possono essere rappresentate 2 differenti informazioni. Tuttavia,
mettendo insieme pi bit, possibile rappresentare un numero, anche molto elevato, di
informazioni.
Attraverso 2 bit, per esempio, possono essere rappresentate 4 differenti informazioni:
00, 01, 10, 11
con 3 bit possibile rappresentare 8 differenti informazioni:
000, 001, 010, 011, 100, 101, 110, 111
con 4 bit possibile rappresentare 16 differenti informazioni:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101,
1110, 1111
e cos via. In generale con n bit possibile rappresentare 2n differenti informazioni.
Gli attuali personal computer operano su sequenze di 32 o 64 bit. Questo vuol dire che sono in
grado di elaborare blocchi di informazione, ognuno dei quali pu codificare ben 232=
4.294.967.295 o 264=18.446.744.073.709.551.616 informazioni differenti.

Il byte

In informatica ha particolare importanza il concetto di byte. Un byte lequivalente di 8 bit,


per cui con un byte possibile rappresentare 28 = 256 differenti informazioni. Il byte
utilizzato come unit di misura per le dimensioni della memoria, la velocit di trasmissione, la
potenza di un elaboratore. Multipli del byte sono:

kilobyte KB 210 Byte


megabyte MB 220 Byte
gigabyte GB 230 Byte
terabyte TB 240 Byte
petabyte PB 250 Byte
exabyte EB 260 Byte
zettabyte ZB 270 Byte
yottabyte YB 280 Byte

Queste definizioni in realt non sono in accordo con i prefissi del SI, che le ha
espressamente vietate, riconoscendo invece le seguenti:

9
kilobyte KB 103 Byte kibibyte KiB 210 Byte
megabyte MB 106 Byte mebibyte MiB 220 Byte
gigabyte GB 109 Byte gibibyte GiB 230 Byte
terabyte TB 1012 Byte tebibyte TiB 240 Byte
petabyte PB 1015 Byte pebibyte PiB 250 Byte
exabyte EB 1018 Byte exbibyte EiB 260 Byte
zettabyte ZB 1021 Byte zebibyte ZiB 270 Byte
yottabyte YB 1024 Byte yobibyte YiB 280 Byte

Molto spesso per si usano le associazioni della prima tabella, ad esempio per esprimere la
capacit di memoria. Anche la maggior parte dei software (compresi i sistemi operativi)
utilizzano quelle definizioni per indicare valori come la dimensione di un file o lo spazio
disponibile su hard disk.
Va detto per che questo equivoco sta giocando un ruolo a favore dei costruttori: chi compra
un hard disk da 200GB, ad esempio, si aspetta generalmente 200*230 Byte (214.748.364.800
Byte), mentre 200GB equivalgono, secondo il SI, a 200*109, che un numero nettamente
inferiore (200.000.000.000 Byte).

I sistemi di numerazione

Sul bit stato formulato, per consentire al computer lelaborazione delle informazioni, un
sistema di numerazione, detto sistema di numerazione binario, alternativo al sistema
decimale, da noi comunemente utilizzato nella vita quotidiana.
Il sistema decimale basato su 10 differenti cifre (si dice che la base 10), dalla cifra 0 alla
cifra 9, ed di tipo posizionale. Il termine posizionale deriva dal fatto che, a seconda della
posizione che una cifra occupa nella rappresentazione di un numero, essa caratterizzata da
un peso. Ad esempio, si consideri il numero 1524; la posizione delle cifre obbedisce al
seguente schema:
1 5 2 4

posizione 3 posizione 2 posizione 1 posizione 0

La cifra 4 quella meno significativa, poich rappresenta le unit; la cifra 2 rappresenta le


decine; la cifra 5 rappresenta le centinaia; la cifra 1 rappresenta le migliaia.
Grazie alla caratteristica posizionale, un numero decimale pu essere espresso come
sommatoria di potenze di 10, le quali rappresentano i pesi delle posizioni, secondo il seguente
schema:
Posizione Peso Potenza di 10
0 Unit 100=1
1 Decine 101=10
2 Centinaia 102=100
3 Migliaia 103=1000

In tal modo, il precedente numero, 1524, pu essere espresso nel seguente modo:
1*103 + 5*102 + 2*101 + 4*100 = 1000 + 500 + 20 + 4 = 1524

Come il sistema numerico decimale, anche il sistema binario, basato sulle cifre 0 e 1
(sistema a base 2), di tipo posizionale. I pesi relativi alle posizioni sono definiti per dalle
potenze di 2:
Se si considera il numero binario 100101, si ha:

10
1 0 0 1 0 1

posizione 5 posizione 4 posizione 3 posizione 2 posizione 1 posizione 0
peso 32 (25) peso 16 (24) peso 8 (23) peso 4 (22) peso 2 (21) peso 1 (20)

La sequenza dei numeri si costruisce ovviamente considerando che le cifre sono solo 2:
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000,

Queste considerazioni possono essere estese anche a sistemi di numerazione con altre basi.
Particolare rilevanza hanno assunto, in ambito informatico, il sistema ottale (base 8) e il
sistema esadecimale (base 16).

Il sistema ottale basato sulle cifre 0, 1, 2, 3, 4, 5, 6, 7. I pesi sono potenze di 8. La sequenza


dei numeri :
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, , 27, 30, , 77, 100,

Il sistema esadecimale basato su 16 cifre (base 16): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,


E, F.
Il corrispettivo numerico delle lettere il seguente: A=10, B=11, C=12, D=13, E=14, F=15.
I pesi sono potenze di 16. La sequenza dei numeri :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, , 1F, 20, , 2F, 30, , FF, 100,

Quando si usano numeri di pi basi, necessario identificare la base di appartenenza


scrivendola come pedice del numero. Ad esempio:
45610 un numero in base 10
24378 un numero in base 8
101112 un numero in base 2
3A516 un numero in base 16
La lettura dei numeri in base diversa da 10 avviene inoltre una cifra per volta, in quanto i
concetti di unit, decine, centinaia, migliaia, ecc. esistono solo nel sistema decimale.

Conversione base b base 10

Per convertire un numero da una qualunque base b a base 10 basta moltiplicare ogni cifra per
il suo peso e sommare il tutto.

Ad esempio, il numero in base 10 corrispondente al numero binario 10100101 :


1*27+0*26+1*25+0*24+0*23+1*22+0*21+1*20 = 128+0+32+0+0+4+0+1 = 165

Il numero in base 10 pi grande che possibile rappresentare con c cifre in notazione binaria
2c-1

Ad esempio, il numero in base 10 pi grande rappresentabile con 2 cifre binarie 3, che


equivale a 11. Infatti:
112 = 1*21 + 1*20 = 310 = 22-1
Allo stesso modo, il numero in base 10 pi grande rappresentabile con 4 cifre 15, che
equivale a 1111. Infatti:
11112 = 123 + 122 + 121 + 120 = 1510 = 24-1

Con 1 byte (8 bit) pertanto possibile rappresentare i numeri decimali da 0 a 255 (28-1)

Per gli altri sistemi di numerazione, il meccanismo di conversione lo stesso.

Ad esempio, il numero in base 10 corrispondente al numero ottale 362 :


3*82+6*81+2*80 = 3*64+6*8+2*1 = 192+48+2 = 242

Il numero in base 10 pi grande che possibile rappresentare con c cifre in notazione ottale
8c-1

Il numero in base 10 corrispondente al numero esadecimale 20A3 invece:

11
2*163+0*162+10*161+3*160 = 2*4096+0*256+10*16+3*1 = 8192+0+160+3 = 8355

Il numero in base 10 pi grande che possibile rappresentare con c cifre in notazione


esadecimale 16c-1.

Conversione base 10 base b

La conversione di un numero del sistema decimale in un sistema a base b si effettua dividendo


successivamente per b il numero decimale da convertire; di ogni divisione viene calcolato il
resto, mentre il quoziente viene usato come dividendo nella divisione successiva. Quando si
ottiene quoziente 0, il procedimento termina e il risultato la sequenza dei resti letta al
contrario (cio dallultimo calcolato).
Es.: Convertire il numero decimale 12 in binario.

resti
12 2 0
Il risultato dunque 1210 = 11002. Per la controprova
6 2 0
basta convertire il numero binario ottenuto in
3 2 1 decimale
1 2 1 11002 = 1*23+1*22+0*21+0*20 = 8 + 4 = 1210

Es.: Convertire il numero decimale 314 in ottale.

resti
314 8 2
Il risultato dunque 31410 = 4728. Per la controprova
39 8 7
basta convertire il numero ottale ottenuto in decimale
4 8 4 4728 = 4*82+7*81+2*80 = 256 + 56 + 2 = 31410
0

Es.: Convertire il numero decimale 944 in esadecimale.

resti
944 16 0 Il risultato dunque 94410 = 3B016. Per la controprova
59 16 B (11) basta convertire il numero esadecimale ottenuto in
decimale
3 16 3 3B016 = 3*162+11*161+0*160 = 768 + 176 + 0 = 94410
0

Le conversioni in base b delle potenze di b (in base 10) sono immediate ed uguali in tutti i
sistemi di numerazione:
Base 10 b0 = 1 b1 b2 b3 bn
Base b 1 10 100 1000 1 seguito da n zeri

Es.: 810 in binario vale 1000, essendo 8=23


25610 in esadecimale vale 100, essendo 256=162

I sistemi di numerazione ottale ed esadecimale sono usati perch consentono una pi


compatta rappresentazione dei numeri binari; infatti immediata la conversione in binario e
viceversa:
- binario-ottale

12
Le cifre binarie vengono raggruppate 3 per volta, da destra a sinistra e ogni terna
codificata nella corrispondente cifra ottale, come indicato nella seguente tabella:
000 001 010 011 100 101 110 111
0 1 2 3 4 5 6 7
Se il numero di cifre binarie non multiplo di 3, si aggiungono zeri a sinistra.
Es.:
11010012 = 1518 essendo 001 101 001
1 5 1
- ottale-binario
Ogni cifra ottale codificata nella corrispondente codifica binaria su 3 cifre.
Es.:
5 4 7
5478 = 1011001112 essendo
101 100 111

In esadecimale le cifre binarie sono raggruppate 4 per volta. La conversione delle cifre :

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F

Es.:
F 3 A
F3A16 = 1111001110102 essendo
1111 0011 1010
Es.:
10101110012 = 2B916 essendo 0010 1011 1001
2 B 9

Rappresentazione binaria dei numeri negativi

Si finora visto come rappresentare in binario i numeri naturali (numeri interi senza segno).

I computer devono per operare anche su numeri con segno e, dovendo far ricorso sempre
solo a due differenti simboli (0 e 1), si stabilito di utilizzare il bit pi a sinistra per il segno,
rappresentando il segno + con il bit 0 e il segno con il bit 1.
Es.: 1101 = -101 = -5

Sappiamo che con n bit si possono rappresentare 2n numeri senza segno, da 0 a 2n-1. Se n=8,
ad esempio, possibile rappresentare 28= 256 numeri, da 0 a 255.

Per i numeri con segno, i valori rappresentabili sono sempre 2n, ma per met positivi e per
met negativi: i valori rappresentabili vanno da (2n-1 - 1) a 2n-1 1. Lesponente n-1
giustificato dal fatto che si riserva un bit per il segno.

Ad esempio, con n=8 i valori rappresentabili sono:

11111111 = -127
11111110 = -126

10000000 = 0
00000000 = 0

01111110 = 126
01111111= 127

Si osservi che la rappresentazione dello zero ridondante (ce ne sono due), perch lo zero non
ha segno. In genere si adotta una rappresentazione, detta Complemento a due, che

13
rappresenta lo zero con tutti i bit 0 ed utilizza la sua rappresentazione negativa (quella che
inizia con 1) per un numero negativo in pi, per cui i numeri con segno rappresentabili con n
bit vanno da 2n-1 a 2n-1 1.

Con n=8 bit, i valori con segno rappresentabili vanno dunque da -128 a +127.

Rappresentazione di numeri frazionari

Oltre ai numeri con segno, il computer deve poter rappresentare ed elaborare anche numeri
con cifre decimali. A tal proposito si adotta la cosiddetta rappresentazione in virgola
mobile (floating point).

Se x il numero frazionario da rappresentare, lo si esprime nel seguente formato (detto


normalizzazione):

x = 0.m 10e

dove m detto mantissa mentre e detto esponente.


Sia la mantissa che l'esponente sono numeri interi con segno e vengono memorizzati con le
regole viste in precedenza per i numeri interi. La rappresentazione di x avviene dunque
rappresentando solo la mantissa e lesponente della sua rappresentazione normalizzata.

Esempi:

- il numero -183.46 si rappresenta nel seguente modo:

-18346 3
mantissa esponente

essendo -183.46 = -0.18346 103

- il numero 18.327 si rappresenta nel seguente modo:

18327 2
mantissa esponente

essendo 18.327 = 0.18327 102

- il numero 0.0157 si rappresenta nel seguente modo:

157 -1
mantissa esponente

essendo 0.0157 = 0.157 10-1

- il numero -0.00003 si rappresenta nel seguente modo:

-3 -4
mantissa esponente

essendo -0.00003 = 0.3 10-4

Il problema di questo tipo di rappresentazione la perdita di precisione.


Supponiamo di operare nel sistema decimale e di voler utilizzare 4 cifre per m e 1 cifra per e.
La rappresentazione del numero 123.45 non consente allora di preservare la seconda cifra
decimale, perdendo in precisione:
123.45 = 0.1234103

Negli standard attualmente usati (IEEE 754), i numeri a virgola mobile sono di due tipi:
 singola precisione: 32 bit, di cui 24 per la mantissa e 8 per l'esponente (6 cifre
decimali)

14
 doppia precisione: 64 bit, di cui 53 per la mantissa e 11 per l'esponente (15 cifre
decimali)

La Codifica dei Caratteri

Un carattere viene introdotto nel computer a partire da un dispositivo elettronico, la tastiera.


Vi possono essere tastiere diverse per ogni paese, in quanto alcuni paesi usano tipi di caratteri
diversi: ad esempio in Italia si usano anche i caratteri corrispondenti alle vocali accentate in
modo grave o acuto (,,,,,,,,,), mentre in Francia o Spagna si usa la cedila, cio il
carattere , e nelle tastiere di quei paesi presente il tasto relativo.

Se un calcolatore deve funzionare in questi paesi, l'unica cosa che verr sostituita la tastiera,
mentre ovviamente il computer deve essere costruito per poter funzionare indipendentemente
dal paese.

Ma quanti bit sono necessari per rappresentare un carattere? La soluzione pi diffusa


attualmente quella a 8 bit, con la quale si possono rappresentare 256 caratteri.

Per quanto riguarda invece lassociazione tra i caratteri e le varie combinazioni di bit, lo
standard pi diffuso chiamato ASCII (American Standard Code for Information
Interchange), che utilizza 7 bit, quindi i codici da 0 a 127:

I codici da 0 a 31 sono riservati a segnali di controllo; si tratta di comandi pensati per le


telescriventi (per le quali il codice ASCII fu inizialmente creato) e solo pochi si utilizzano ancora

15
con i computer.
Se si sta usando Windows, si pu ottenere ogni carattere ASCII tenendo premuto il tasto Alt e
digitando il codice decimale corrispondente con il tastierino numerico (se il tastierino numerico
non attivo, premere prima il tasto Num lock o Bloc Num per attivarlo). Per esempio, la
chiocciola @ si ottiene digitando 64 mentre si tiene premuto il tasto Alt.

Nella tabella sono stati riportati, per ogni carattere, la codifica decimale, esadecimale ed ottale,
ma il computer usa ovviamente la rappresentazione in binario.
Dunque la lettera A rappresentata, ad esempio, con il codice binario 1000001, che
corrisponde al numero decimale 65.

Usando 8 bit per i caratteri, per, restano 128 combinazioni (da 128 a 255), alle quali lo
standard ASCII non d una definizione precisa dei caratteri e vi sono varie possibilit; una di
queste la codifica ASCII ESTESA a 8 bit.

Per i caratteri nei moderni sistemi operativi utilizzata la codifica UNICODE a 16 bit. Il
numero di possibili simboli rappresentabili 65536 e si possono rappresentare caratteri
ideografici, come ad esempio il Kanji dei giapponesi.

16