L'informazione e la
L'informazione e la
sua codifica
sua codifica
Corso di Informatica
Corso di Informatica
CdL:
CdL:
Chimica
Chimica
Claudia d'Amato
Claudia d'Amato
claudia.damato@di.uniba.it claudia.damato@di.uniba.itInformatica - Claudia d'Amato 2
Informatica e telecomunicazione
Informatica e telecomunicazione
Cos’è l’
Cos’è l’
informatica
informatica
?
?
• lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione
[ACM – Association for Computing Machinery]
• la scienza della rappresentazione e dell’elaborazione la scienza della rappresentazione e dell’elaborazione dell’informazione
dell’informazione
Cos’è la
Cos’è la
telecomunicazione
telecomunicazione
?
?
• la trasmissione rapida a rapida distanza dell’informazionedistanza
Attenzione:
Attenzione:
• NonNon si parla di tecnologia dei calcolatoricalcolatori !
Informazione e supporto
Informazione e supporto
L’informazione è “
L’informazione è “
portata da
portata da
”, o “
”, o “
trasmessa
trasmessa
su
su
”, o “
”, o “
memorizzata in
memorizzata in
”, o “
”, o “
contenuta in
contenuta in
”
”
qualcosa; questo “
qualcosa; questo “
qualcosa
qualcosa
” però non è
” però non è
l’informazione stessa.
l’informazione stessa.
Ogni supporto ha le sue caratteristiche in
Ogni supporto ha le sue caratteristiche in
quanto mezzo su cui può essere scritta
quanto mezzo su cui può essere scritta
dell’informazione.
Informatica - Claudia d'Amato 4
Informazione e supporti /2
Informazione e supporti /2
La stessa informazione può essere scritta
La stessa informazione può essere scritta
su
su supporti differenti
supporti differenti
.
.
10
10
9
11
8
6
7
Informazione e supporto /4
Informazione e supporto /4
Distinguere informazione e supporto fisico è
Distinguere informazione e supporto fisico è
distinguere tra “
distinguere tra “
entità logiche
entità logiche
” ed “
” ed “
entità
entità
fisiche
fisiche
”:
”:
• l’informazione richiede un supporto fisico
richiede un supporto fisico
, ma
non coincide con esso;
• l’informazione è un’entità extra‑fisica
extra‑fisica
, non
interpretabile in termini di materia‑energia e
sottoposta alle leggi della fisica solo perché basata
su un supporto fisico.
Informatica - Claudia d'Amato 7
Caratteristiche di un sistema fisico per
Caratteristiche di un sistema fisico per
supportare informazioni
supportare informazioni
CODIFICA:
CODIFICA:
l'operazione formalizzazione e
l'operazione formalizzazione e
scrittura dell'infomazione su supporto fisico
scrittura dell'infomazione su supporto fisico
DECODIFICA:
DECODIFICA:
l'operazione di interpretazione
l'operazione di interpretazione
e lettura dell'informazione da supporto fisico
e lettura dell'informazione da supporto fisico
Condizione necessaria
Condizione necessaria
perché un supporto
perché un supporto
possa portare informazione è che possa
possa portare informazione è che possa
assumere
assumere
configurazioni differenti
configurazioni differenti
, a ognuna
, a ognuna
delle quali venga associata una differente
delle quali venga associata una differente
entità di informazione
Supporto fisico: 1
Supporto fisico: 1
a
a
condizione
condizione
Deve consentire di
Deve consentire di
potere identificare
potere identificare
delle differenze
delle differenze
• Es: voglio rappresentare 2 alternative
Cosa rappresenta
Cosa
rappresenta
ciascuna
ciascuna
configurazione?
Informatica - Claudia d'Amato 9
Configurazioni e codici
Configurazioni e codici
Per interpretare le differenti configurazioni del
supporto è necessario conoscere il
codice
(cioè la
regola) che a ogni
configurazione ammessa associa
un’entità di informazione
.
La definizione di un
codice
comporta che siano
identificati in modo
non ambiguo
l’insieme delle
possibili configurazioni
del supporto e l’insieme
delle
possibili entità di informazione
a cui ci si
vuole riferire.
Variando il codice è possibile riferirsi a entità di
informazione differenti utilizzando uno stesso
supporto fisico
.
CODICE
Supporto fisico: 2a condizione
Supporto fisico: 2a condizione
Deve essere
Deve essere
condivisa
condivisa
una regola per
una regola per
attribuire un
attribuire un
significato
significato
a ciascuna
a ciascuna
configurazione
configurazione
Configurazione 1 Entità di informazione 1 Configurazione 2 Entità di informazione 2Informatica - Claudia d'Amato 11
Definire un codice
Definire un codice
Identificare
Identificare
• { Configurazioni } • { Entità informazione }
Associare gli elementi
Associare gli elementi
dei 2 insiemi
Il telegrafo...
Il telegrafo...
Supporto fisico
Supporto fisico
: conduttore in cui transita corrente
: conduttore in cui transita corrente
continua
continua
Entità di informazione
Entità di informazione
: “punti” e “linee”, che
: “punti” e “linee”, che
rappresentano le lettere dell’alfabeto
rappresentano le lettere dell’alfabeto
Codice
Codice
= regola che specifica la corrispondenza:
= regola che specifica la corrispondenza:
• passa corrente per 1 s
⇒
punto
• passa corrente per 2 s
⇒
linea
• non passa corrente per 1 s
⇒
separazione tra punti e
linee della stessa lettera
• non passa corrente per 2 s
⇒
separazione tra due
lettere
•
“
“
passa corrente per 1 s, non passa per 1 s, passa per
passa corrente per 1 s, non passa per 1 s, passa per
2 s” = “punto line
Informatica - Claudia d'Amato 13
...Il telegrafo
...Il telegrafo
Codice Morse
Codice Morse
= relazione tra lettere e sequenze di
= relazione tra lettere e sequenze di
punti linee:
punti linee:
• punto linea
⇒
lettera “A”
• linea punto punto punto
⇒
lettera “B”
• linea punto linea punto
⇒
lettera “C”
• ecc.
Messaggi vs configurazione
Messaggi vs configurazione
Configurazione del supporto fisicoConfigurazione del supporto fisico (livello fisico, (livello fisico, LFLF):):
• passa corrente per 2s, non passa per 1s, passa per 1s, non passa per 2s, passa per 2s, non passa per 1s, passa per 2s, non passa per 1s, passa per 2s
messaggiomessaggio, al livello logico 1 (, al livello logico 1 (LL1LL1):):
• linea punto, separazione di lettera, linea linea linea
messaggiomessaggio, al livello Logico 2 (, al livello Logico 2 (LL2LL2):):
• “N” “O”
messaggiomessaggio, al livello Logico 3 (, al livello Logico 3 (LL3LL3):):
• “NO”, con il significato (per esempio) di “incontro non confermato”
Le relazioni tra questi livelli definiscono ognuna un codice Le relazioni tra questi livelli definiscono ognuna un codice
per interpretare il significato delle entità che compaiono al
per interpretare il significato delle entità che compaiono al
livello precedente in termini delle entità del livello
livello precedente in termini delle entità del livello
successivo: sono relazioni di significazione.
Informatica - Claudia d'Amato 15
Livelli di informazione
Livelli di informazione
Informazione
Informazione
sintattica
sintattica
•
Rappresentazione in simboli dell'informazione
Informazione
Informazione
semantica
semantica
•
Determinazione del significato della informazione
rappresentata
Informazione
Informazione
pragmatica
pragmatica
•
Determinazione del valore da attribuire
all'informazione, considerata la sua
La codifica dell’informazione
Informatica - Claudia d'Amato 18
Codifica dati e istruzioni
Codifica dati e istruzioni
Algoritmo
Algoritmo
• descrizionedescrizione della soluzione di problemasoluzione di problema scritta in modo da poter essere eseguita da un esecutoreesecutore (eventualmente diverso dall’autore dell’algoritmo)
• sequenza di istruzioniistruzioni che operano su datidati.
Programma
Programma
• algoritmo algoritmo scritto in modo da poter essere eseguito da un calcolatore
calcolatore (esecutore automatico)
Per scrivere un
Per scrivere un
programma
programma
è necessario
è necessario
rappresentare
rappresentare
istruzioni
istruzioni
e
e
dati
dati
in un formato tale
in un formato tale
che
che
l’esecutore automatico
l’esecutore automatico
sia capace di
sia capace di
memorizzare
Rappresentare dati e istruzioni
Rappresentare dati e istruzioni
per il processing di un esecutore
per il processing di un esecutore
automatico
automatico
Alfabeto dei simboliAlfabeto dei simboli
• cifre “0”, “1”, …, “9”, separatore decimale (“,”), separatore delle migliaia (“.”) e segni positivo (“+”) o negativo (“–”).
Regole di composizioneRegole di composizione (sintassi), che definiscono le (sintassi), che definiscono le
successioni “ben formate”
successioni “ben formate”
• “1.234,5” è la rappresentazione di un numero; • “1,23,45” non lo è.
CodiceCodice (semantica)(semantica)
• “1.234,5” = 1×103 + 2×102 + 3×101 + 4×100 + 5×10–1
• “1,23,45” = ??
Lo stesso alfabeto può essere utilizzato con codici diversi:Lo stesso alfabeto può essere utilizzato con codici diversi:
• “123,456” = 1×102 + 2×101 + 3×100 + 4×10–1 + 5×10–2 + 6×10–3, [IT]
Informatica - Claudia d'Amato 20
Codifica Binaria
Codifica Binaria
Alfabeto binarioAlfabeto binario: usiamo dispositivi con solo due stati: usiamo dispositivi con solo due stati
Problema: assegnare un Problema: assegnare un codice univococodice univoco a tutti gli oggetti a tutti gli oggetti
compresi in un insieme predefinito
compresi in un insieme predefinito
Quanti Quanti oggettioggetti posso codificare con posso codificare con kk bit: bit:
• 1 bit ⇒ 2 stati (0, 1) ⇒ 2 oggetti (e.g. Vero/Falso) • 2 bit ⇒ 4 stati (00, 01, 10, 11) ⇒ 4 oggetti
• 3 bit ⇒ 8 stati (000, 001, …, 111) ⇒ 8 oggetti • …
• k bit k bit ⇒⇒ 2 2kk stati stati ⇒⇒ 2 2kk oggetti oggetti
Quanti Quanti bitbit mi servono per codificare mi servono per codificare NN oggetti: oggetti:
• N ≤ 2k ⇒ k ≥ log
2N ⇒ k = k = loglog22NN (intero superiore)
Attenzione:Attenzione:
ipotesi implicita che i codici abbiano tutti la
Esempio di codifica binaria
Esempio di codifica binaria
Problema:Problema:
assegnare un codice binario univoco a tutti i giorni della
assegnare un codice binario univoco a tutti i giorni della
settimana
settimana
Giorni della settimana: N = 7 Giorni della settimana: N = 7 ⇒⇒ k ≥ log k ≥ log227 7 ⇒⇒ k = 3 k = 3
Con 3 bit possiamo ottenere 8 diverse configurazioni:Con 3 bit possiamo ottenere 8 diverse configurazioni:
• Ne servono 7, quali utilizziamo?
• Quale configurazione associamo a quale giorno?
Attenzione:Attenzione:
ipotesi che i codici abbiano tutti la stessa lunghezza
Informatica - Claudia d'Amato 22
I giorni della settimana in binario /1
I giorni della settimana in binario /1
1 bit
2 “gruppi” 4 “gruppi”2 bit 8 “gruppi”3 bit
Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 000 001 010 011 100 101 111 110 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 00 01 10 11 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 0 1 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica
I giorni della settimana in binario /2
I giorni della settimana in binario /2
1 bit
2 “gruppi” 4 “gruppi”2 bit 8 “gruppi”3 bit
Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 000 001 010 011 100 101 111 110 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 00 01 10 11 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 0 1 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica
Informatica - Claudia d'Amato 24
Codifica binaria dei caratteri
Codifica binaria dei caratteri
Quanti sono gli oggetti compresi nell’insieme?
Quanti sono gli oggetti compresi nell’insieme?
• 26 lettere maiuscole + 26 minuscole ⇒ 52 • 10 cifre
• Circa 30 segni d’interpunzione
• Circa 30 caratteri di controllo (EOF, CR, LF, …)
circa 120 oggetti complessivi
circa 120 oggetti complessivi
⇒
⇒
k =
k =
log
log
22120
120
= 7
= 7
Codice ASCII: utilizza 7 bit e quindi può
Codice ASCII: utilizza 7 bit e quindi può
rappresentare al massimo 2
rappresentare al massimo 2
77=128 caratteri
=128 caratteri
• Con 8 bit (= byte) rappresento 256 caratteri (ASCII esteso) • Si stanno diffondendo codici più estesi (e.g. UNICODE) per
ASCII su 7 bit (alcune configurazioni)
ASCII su 7 bit (alcune configurazioni)
canc ~ } | { z Y x w v u t s r q p 111 o n m l k j I h g f e d c b a ` 110 _ ^ ] \ [ Z Y X W V U T S R Q P 101 O N M L K J I H G F E D C B A @ 100 ? > = < ; : 9 8 7 6 5 4 3 2 1 0 011 / . -, + * ) ( ' & % $ # " ! sp 010 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0
Informatica - Claudia d'Amato 26
bit, Byte, KiloByte, MegaByte, …
bit, Byte, KiloByte, MegaByte, …
bit
bit
= solo due stati, “0” oppure “1”.
= solo due stati, “0” oppure “1”.
Byte
Byte
= 8 bit, quindi 2
= 8 bit, quindi 2
88= 256 stati
= 256 stati
KiloByte
KiloByte
[
[
KB
KB
]
]
= 2
= 2
1010Byte = 1024 Byte ~ 10
Byte = 1024 Byte ~ 10
33Byte
Byte
MegaByte
MegaByte
[
[
MB
MB
]
]
= 2
= 2
2020Byte = 1'048'576 Byte ~ 10
Byte = 1'048'576 Byte ~ 10
66Byte
Byte
GigaByte
GigaByte
[
[
GB
GB
]
]
= 2
= 2
3030Byte ~ 10
Byte ~ 10
99Byte
Byte
TeraByte
TeraByte
[
[
TB
TB
]
]
= 2
= 2
4040Byte ~ 10
Byte ~ 10
1212Byte
Byte
PetaByte
PetaByte
[
[
PB
PB
]
]
= 2
= 2
5050Byte ~ 10
Byte ~ 10
1515Byte
Byte
ExaByte
La codifica delle istruzioni
La codifica delle istruzioni
Si segue lo schema presentato per i caratteri
Si segue lo schema presentato per i caratteri
alfanumerici:
alfanumerici:
• quali e quante sono le istruzioni da codificare?
• qual è la lunghezza delle successioni di bit da utilizzare ? • qual è la corrispondenza tra istruzioni e successioni di bit ?
Istruzioni aritmetico-logiche Istruzioni per il trasferimento dati Istruzioni d i controllo
Cod ice Istruzione Cod ice Istruzione Cod ice Istruzione 0111 1100 ADD 1110 1000 LOAD 0100 1001 IF_EQ 0111 1101 SUB 1111 1000 STORE 0100 1000 GOTO 0111 1110 AND … … … … … … 0100 1100 RETURN
Informatica - Claudia d'Amato 28
Oltre al codice operativo
Oltre al codice operativo
… … è necessario far riferimento ai datiè necessario far riferimento ai dati necessari per necessari per
completare l’esecuzione dell’istruzione, completare l’esecuzione dell’istruzione,
• e.g. addizione: è necessario che sia specificato (anche implicitamente) dove leggere i due operandi da sommare e dove scrivere il risultato;
il numeroil numero dei dati da specificare è variabile, in funzione dei dati da specificare è variabile, in funzione
delle istruzioni. delle istruzioni.
Numeri naturali
Numeri naturali
Sistema di numerazione posizionale in base
Sistema di numerazione posizionale in base
b
b
•ckck–1…c0 rappresenta ck×bk + c
k–1×bk–1 + … + c0×b0
•b=10 ⇒ 1101dieci indica 1×103 + 1×102 + 0×10 + 1×100
Conversione
Conversione
binario
binario
⇒
⇒
decimale
decimale
•basta scrivere il numero secondo la notazione posizionale utilizzando già il sistema decimale
•b=2 ⇒ 1101due indica 1×23 + 1×22 + 0×2 + 1×20 = 13dieci
Conversione
Conversione
decimale
decimale
⇒
⇒
binario
binario
•
Metodo delle divisioni successive
Informatica - Claudia d'Amato 30
Conversione binario
Conversione binario
⇒
⇒
decimale
decimale
101100due = 1dieci×2dieci5 + 0dieci×24dieci+ 1d ieci×23dieci+ 1dieci×22dieci+ 0d ieci×21dieci+
+ 0d ieci×20dieci =
= 1dieci×32dieci + 0dieci×16dieci + 1dieci×8dieci + 1dieci×4dieci+ 0d ieci×2dieci
+ 0d ieci×1dieci =
= 32dieci + 8dieci + 4dieci =
= 44dieci
101110101due = 1dieci×28dieci+ 0dieci×27dieci+ 1dieci×26dieci+ 1dieci×25dieci+ 1d ieci×24dieci+
0dieci×23dieci+ 1dieci×22dieci+ 0dieci×21dieci+ 1dieci×20dieci =
= 1dieci×256dieci+ 0dieci×128dieci+ 1dieci×64dieci+ 1dieci×32d ieci+
1dieci×16d ieci+ 0dieci×8d ieci+ 1dieci×4dieci+ 0dieci×2dieci+ 1dieci×1d ieci =
= 256dieci+ 64d ieci+ 32dieci+ 16dieci+ 4dieci+ 1dieci =
Conversione decimale
Conversione decimale
⇒
⇒
binario
binario
Sistema di numerazione posizionale in base B che, in questo contesto si può Sistema di numerazione posizionale in base B che, in questo contesto si può
ipotizzare diversa da dieci
ipotizzare diversa da dieci
c cn–1n–1ccn–2n–2…c…c11cc00 = c = cn–1n–1××BBn–1n–1 + c + c n–2 n–2××BBn–2n–2 + … + c + … + c11××BB11 + c + c00××BB00 c cn–1n–1ccn–2n–2…c…c11cc00 = c = cn–1n–1××BBn–1n–1 + c + c n–2 n–2××BBn–2n–2 + … + c + … + c11××B + cB + c00 (infatti B (infatti B11 = B e B = B e B00 = 1) = 1) Dividendo il numero per il valore della base, il risultato che si ottiene è:Dividendo il numero per il valore della base, il risultato che si ottiene è:
(c (cn–1n–1××BBn–1n–1 + c + c n–2 n–2××BBn–2n–2 + … + c + … + c11××B + cB + c00)/B =)/B = = c = cn–1n–1××BBn–2n–2 + c + c n–2 n–2××BBn–3n–3 + … + c + … + c11 + c + c00/B/B
che può essere scomposto in modo da evidenziare quoziente e resto:che può essere scomposto in modo da evidenziare quoziente e resto:
quoziente = c quoziente = cn–1n–1×B×Bn–2n–2 + c + c n–2 n–2×B×Bn–3n–3 + … + c + … + c11 resto = c resto = c00
Il resto della divisione corrisponde all’ultima cifra della rappresentazione in Il resto della divisione corrisponde all’ultima cifra della rappresentazione in
base B del numero
base B del numero, ma il suo valore è indipendente dalla base che si utilizza , ma il suo valore è indipendente dalla base che si utilizza per effettuare i conti.
per effettuare i conti.
Applicando lo stesso procedimento al quoziente si ottiene la Applicando lo stesso procedimento al quoziente si ottiene la penultimapenultima cifra cifra
della rappresentazione in base B
della rappresentazione in base B
Informatica - Claudia d'Amato 33
Conversione
Conversione
decimale
decimale
⇒
⇒
binario
binario
573
573diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 286286diecidieci restoresto 11diecidieci 286
286diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 143143diecidieci restoresto 00diecidieci 143
143diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 7171diecidieci restoresto 11diecidieci 71
71diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 3535diecidieci restoresto 11diecidieci 35
35diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 1717diecidieci restoresto 11diecidieci 17
17diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 88diecidieci restoresto 11diecidieci 8
8diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 44diecidieci restoresto 00diecidieci 4
4diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 22diecidieci restoresto 00diecidieci 2
2diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 11diecidieci restoresto 00diecidieci 1
1diecidieci : 2 : 2diecidieci ⇒⇒ quozientequoziente 00diecidieci restoresto 11diecidieci
1 000 111 101
1 000 111 101
duedue= 573
= 573
diecidieci(cifra binaria meno significativa)
(cifra binaria meno significativa)
(cifra binaria più significativa)
Conversione
Conversione
decimale
decimale
⇒
⇒
binario
binario
18 : 2 = 9 18 : 2 = 9 resto 0resto 0 9 : 2 = 4 9 : 2 = 4 resto 1resto 1 4 : 2 = 2 4 : 2 = 2 resto 0resto 0 2 : 2 = 1 2 : 2 = 1 resto 0resto 0 1 : 2 = 0 1 : 2 = 0 resto 1resto 1 137 : 2 = 137 : 2 = 6868 resto 1resto 1 68 : 2 = 68 : 2 = 3434 resto 0resto 0 34 : 2 = 34 : 2 = 1717 resto 0resto 0 17 : 2 = 17 : 2 = 88 resto 1resto 1 8 : 2 = 8 : 2 = 44 resto 0resto 0 4 : 2 = 4 : 2 = 22 resto 0resto 0 2 : 2 = 2 : 2 = 11 resto 0resto 0 1 : 2 = 1 : 2 = 00 resto 1resto 1
Si calcolano i resti delle divisioni per due
10010
Informatica - Claudia d'Amato 35
Numeri binari: operazioni
Numeri binari: operazioni
Operazioni di somma di numeri binari naturali.Operazioni di somma di numeri binari naturali.
Con gli 8 bit utilizzati negli esempi qui riportati si possono Con gli 8 bit utilizzati negli esempi qui riportati si possono
rappresentare i numeri naturali fino a 255dieci.
rappresentare i numeri naturali fino a 255dieci.
Operazioni che producono un risultato maggiore provocano Operazioni che producono un risultato maggiore provocano
il superamento della capacità di rappresentazione
il superamento della capacità di rappresentazione (indicato (indicato in gergo dal termine inglese
in gergo dal termine inglese overflowoverflow). ).
1
Ottali ed esadecimali
Ottali ed esadecimali
Utili per rappresentare sinteticamente valori binari
Utili per rappresentare sinteticamente valori binari
Ottali (base b = 8)
Ottali (base b = 8)
• Alfabeto ottale: cifre comprese tra 0 e 7
• 354otto = 3×82 + 5×81 + 4×80 = 192+40+4 = 236dieci
• 1461otto = 1×83 + 4×82 + 6×81 + 1×80 = 512+256+48+1 = 817dieci
• Ogni cifra ottale corrisponde a tre cifre binarie:
• 11101100due = [11] [101] [100] = 354otto
• 1100110001due = [1] [100] [110] [001] = 1461otto
Esadecimali (base b = 16)
Esadecimali (base b = 16)
• Alfabeto esadecimale: cifre 0 – 9 + lettere A – F
• ECsedici = 14×161 + 12×160 = 224 + 12 = 236dieci
• 331sedic = 3×162 + 3×161 + 1×160 = 768+48+1 = 817dieci
• Ogni cifra esadecimale corrisponde a quattro cifre binarie:
• 11101100due = [1110] [1100] = ECsedici
Informatica - Claudia d'Amato 37
Numeri naturali binari nei
Numeri naturali binari nei
calcolatori
calcolatori
Per la codifica dei
Per la codifica dei
numeri
numeri
naturali
naturali
(interi
(interi
positivi)
positivi)
si utilizzano abitualmente successioni
si utilizzano abitualmente successioni
di
di
32 bit
32 bit
(4 byte)
(4 byte)
con cui si possono
con cui
si possono
rappresentare i numeri compresi tra
rappresentare i numeri compresi tra
0
Numeri interi relativi
Numeri interi relativi
Alfabeto binario
Alfabeto binario
• anche il segno è rappresentato da 0 o 1
• è indispensabile indicare il numero kk di bit utilizzati
Modulo e segno
Modulo e segno
• 1 bit di segno (0 positivo, 1 negativo)
• k – 1 bit di modulo
• Esempio: +6dieci = 0110ms –6dieci = 1110ms
• si rappresentano i valori da –2k–1+1 a 2k–1–1
• con 4 bit i valori vanno da –7 a +7
• con 8 bit i valori vanno da –127 a +127
• Attenzione: ci sono due rappresentazioni dello 0
Informatica - Claudia d'Amato 40
Numeri interi in complemento a 2
Numeri interi in complemento a 2
Alfabeto binario
Alfabeto binario
• anche il segno è rappresentato da 0 o 1
• è indispensabile indicare il numero k di bit utilizzati
Complemento a 2
Complemento a 2
• X corrisponde al binario naturale di 2k + X
+6dieci ⇒ 24+6 = 22 ⇒ [1]0110 ⇒ 0110 C2
–6dieci ⇒ 24– 6 = 10 ⇒ [0]1010 ⇒ 1010 C2 • si rappresentano i valori da –2k–1 a 2k–1–1
• con 4 bit i valori vanno da –8 a +7
• con 8 bit i valori vanno da –128 a +127
• Con 32 bit i valori vanno da –2'147'483'648 fino a +2'147'483'647
• Attenzione: c’è una sola rappresentazione dello 0
Il complemento a 2
Il complemento a 2
Metodi alternativi per calcolare la
Metodi alternativi per calcolare la
rappresentazione di –X a partire da quella di X
rappresentazione di –X a partire da quella di X
• Effettuare il complemento 1 di ogni bit di X, poi aggiungere 1
• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)
• complemento di tutti i bit ⇒ 1001C2 (corrisponderebbe a -7dieci)
• aggiungere 1 ⇒ 1010C2 (che corrisponde a -6dieci)
• Partendo da destra e andando verso sinistra, lasciare invariati tutti i bit fino al primo 1 compreso,
complementare tutti gli altri bit.
• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)
• gli ultimi due bit (_ _ 1 0) rimangono invariati
Informatica - Claudia d'Amato 43
Complemento a 2: alcune osservazioni
Complemento a 2: alcune osservazioni
I valori positivi iniziano con
I valori positivi iniziano con
0
0
, quelli negativi con
, quelli negativi con
1
1
Data la rappresentazione di un numero su
Data la rappresentazione di un numero su
k
k
bit, la
bit, la
rappresentazione dello stesso numero su
rappresentazione dello stesso numero su
k+1
k+1
bit si
bit si
ottiene aggiungendo (a sinistra) un bit uguale al
ottiene aggiungendo (a sinistra) un bit uguale al
primo (
primo (
estensione del “segno”
estensione del “segno”
)
)
• Rappresentazione di –6 su 4 bit = 1010
• Rappresentazione di –6 su 5 bit = 11010
• Rappresentazione di –6 su 8 bit = 11111010
la sottrazione si effettua come somma algebrica
la sottrazione si effettua come somma algebrica
• 4 – 6 = +4 + (–6) = 0100 + 1010 = 1110 = –2
C2: operazioni
C2: operazioni
Operazioni di somma di numeri binari in complemento a Operazioni di somma di numeri binari in complemento a
due. due.
Con gli 8 bit utilizzati negli esempi qui riportati si possono Con gli 8 bit utilizzati negli esempi qui riportati si possono
rappresentare i numeri interi da –128
Informatica - Claudia d'Amato 45
C2: operazioni
C2: operazioni
ATTENZIONE
ATTENZIONE
Se due operandi dello stesso segno danno un
Se due operandi dello stesso segno danno un
risultato di segno opposto vuol dire che è stata
risultato di segno opposto vuol dire che è stata
superata la capacità di calcolo
Numeri razionali
Numeri razionali
Cifre più significativeCifre più significative: : sono le cifre associate ai pesi maggiorisono le cifre associate ai pesi maggiori
• numeri > 1: le cifre più significative sono quelle poste più a sinistra
• es.: 723'456 → cifra più significativa: 7, associata al peso 105, seguita da 2,
con peso 104, e così via;
• numeri < 1: le cifre più significative sono le prime diverse da 0 che si
incontrano, a partire dalla virgola, da sinistra verso destra
• es.: 0.0072345 --> cifra più significativa: 7, con peso 10–3, seguita da 2, con
peso 10–4, e così via.
Se i numeri hanno un valore molto grande o piccolo, si considerano solo Se i numeri hanno un valore molto grande o piccolo, si considerano solo le cifre più significative
le cifre più significative --> --> rappresentazione in notazione scientificarappresentazione in notazione scientifica: : un numero in base B viene rappresentato come:
un numero in base B viene rappresentato come: ±0.m×B±0.m×Bee,,
• segnosegno (+ oppure –),
• coefficiente mm, detto mantissamantissa, che è la parte frazionaria compresa tra 0 e 1
• esponenteesponente ee a cui elevare la base della numerazione, che è un intero ( 0)
Esempi:Esempi:
• -123'450'000'000 diventa –0.12345×10–0.12345×101212,
con segno negativo, mantissa 12345, ed esponente 12; • +0.000012345, corrisponde a 0.12345×100.12345×10-5-5,
Informatica - Claudia d'Amato 47
Rappresentazione binaria
Rappresentazione binaria
Per esempio +101010000 diventa +0.10101×10Per esempio +101010000 diventa +0.10101×100100101001,,
• segno positivo;
• mantissa 10101 (si noti che la mantissa inizia sempre con 1); • esponente è 01001C2
(si noti come l’esponente sia un numero intero e per questo sia necessario adottare una rappresentazione che permetta la codifica anche di valori negativi, come, per esempio, quella in complemento a due).
Standard Standard IEEE-754IEEE-754 ( (Institute of Electrical and Electronic EngineersInstitute of Electrical and Electronic Engineers):):
• precisione doppia: 64 bitprecisione doppia: 64 bit