1 corso di informatica (programmazione) lezione 2 (10 ottobre 2008) codifica binaria degli interi...
TRANSCRIPT
1
Corso di Informatica
(Programmazione)Lezione 2 (10 ottobre 2008)
Codifica binaria degli interi con segnoin Complemento a 1
Codifica binaria degli interi con segnoin Complemento a 2
Somma algebrica in Complemento a 2
Codifica dei caratteri
2
Codifica binaria degli interi con segno
Codifica in “Complemento a 1”
n bit
La sequenza dei bit del modulo è:
- quella che fornisce il modulo dell’intero da rappresentare se l’intero è positivo
- il complemento della sequenza che fornisce il modulo dell’intero da rappresentare se l’intero è negativo
3
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
+50 0 0 0 1 0 10
-51 1 1 1 0 1 01
Il complemento di unasequenza di bit è la sequenza
che si ottiene sostituendo0 con 1 e 1 con 0
La negazione di un numero siottiene complementando bit del
segno e bit del modulo
4
Codifica binaria degli interi con segno
Intervallo di rappresentazione della codifica
in “Complemento a 1”
n bit
Gli interi con segno rappresentabili in
“Complemento a 1” vanno da (-2n-1+1) a (2n-1-1).
Ad esempio per n=8 bit l’intervallo va da -127 a
127.
5
Codifica binaria degli interi con segno
Vantaggi della codifica in “Complemento a 1”
- semplice implementazione della somma (valgono
le regole viste in precedenza)
- la sottrazione viene trattata come la somma
Svantaggio della codifica in “Complemento a 1”
- doppia rappresentazione dello 0
(1|11…11 e 0|00…00)
6
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
dal momento che l’intero codificato è positivo (bit
del segno a 0), per trovare il modulo basta eseguire
la somma di potenze relative al bit del modulo:
1 x 20 + 1 x 22 + 1 x 24 + 1 x 26 = 85 +85
0 1 0 1 1 0 10
7
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
dal momento che l’intero codificato è negativo (bit
del segno a 1), per trovare il modulo, prima di eseguire
la somma di potenze, i bit del modulo vanno
complementati 0 1 0 1 0 1 0
1 x 21 + 1 x 23 + 1 x 25 = 42 -42
1 1 0 1 1 0 10
8
Codifica binaria degli interi con segno
Codifica in “Complemento a 2”
n bit
La sequenza dei bit del modulo è:
- quella che fornisce il modulo dell’intero da rappresentare se l’intero è positivo
- il complemento della sequenza che fornisce il modulo dell’intero da rappresentare se l’intero è negativo, con l’aggiunta di 1
9
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
+50 0 0 0 1 0 10
-5
1 1 1 1 0 1 01
0 0 0 0 0 0 10
1 1 1 1 0 1 11
La negazione di un numero siottiene complementando bit del
segno e bit del modulo eaggiungendo 1 al modulo
+1
10
Codifica binaria degli interi con segno
Intervallo di rappresentazione della codifica
in “Complemento a 2”
n bit
Gli interi con segno rappresentabili in
“Complemento a 2” vanno da (-2n-1) a (2n-1-1).
Ad esempio per n=8 bit l’intervallo va da -128 a
127.
11
Codifica binaria degli interi con segno
Vantaggi della codifica in “Complemento a 2”
- semplice implementazione della somma (valgono
le regole viste in precedenza)
- la sottrazione viene trattata come la somma
- singola rappresentazione dello 0 (0|00…00); la
sequenza 1|00…00 in “Complemento a 2” rappresenta
infatti l’intero -2n-1
12
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
dal momento che l’intero codificato è positivo (bit
del segno a 0), per trovare il modulo basta eseguire
la somma di potenze relative al bit del modulo:
1 x 20 + 1 x 22 + 1 x 24 + 1 x 26 = 85 +85
0 1 0 1 1 0 10
13
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
dal momento che l’intero codificato è negativo (bit
del segno a 1), per trovare il modulo, prima di eseguire
la somma di potenze, i bit del modulo vanno
complementati ( 0 1 0 1 0 1 0). Poi si aggiunge 1
1 x 21 + 1 x 23 + 1 x 25 = 42 43 -43
1 1 0 1 1 0 10
14
Somma algebrica in “Complemento a 2”
Per eseguire la somma tra due interi
in “Complemento a 2” con n bit si
esegue la somma bit a bit dei due
numeri ignorando sempre l’eventuale
riporto che cade oltre il bit più
significativo
15
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit intervallo di rappresentazione [-8, +7]
0 0 11 -7
+20 1 00
0 1 11 -5
Somma senza riporto risultato corretto
16
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit intervallo di rappresentazione [-8, +7]
1 1 10 +7
-21 1 01
1 0 10 +5
Somma con riporto risultato corretto
1
17
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit intervallo di rappresentazione [-8, +7]
1 1 10 +7
+20 1 00
0 0 11 +9
Somma senza riporto risultato errato
18
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit intervallo di rappresentazione [-8, +7]
0 0 11 -7
-21 1 01
1 1 10 -9
Somma con riporto risultato errato
1
19
Codifica binaria di oggetti
In generale con n bit si possono codificare 2n oggettiAd esempio se si vogliono codificare i 7 giorni
della settimana si possono usare n=3 bit (23
oggetti) e porre:
000 lunedì; 001 martedì
010 mercoledì; 100 giovedì
011 venerdì; 101 sabato;
110 domenica
20
Codifica binaria di oggetti
In generale se si ha il problema di
rappresentare N oggetti, si deve
selezionare un numero n di bit tale che:
2n >= N
21
Codifica binaria dei caratteri
I caratteri da codificare sono:Lettere maiuscole e minuscole A-Z a a-z
Cifre numeriche 0-9
Simboli di punteggiatura , . ; : ! ? etc.
Simboli matematici + - / * etc.
Altri caratteri
22
Codifica binaria dei caratteri (codice ASCII)
US-ASCII (American Standard Code for Information Interchange)
E’ un sistema a 7 bit e codifica 128 caratteri tramite gli interi da 0 a 127:
da 48 a 57 cifre numeriche
da 65 a 90 lettere maiuscole
da 97 a 122 lettere minuscole
Da Wikipedia: http://it.wikipedia.org/wiki/ASCII
23
Codifica binaria dei caratteri (codice ASCII)
High ASCII
E’ un sistema a 8 bit (256 caratteri) ed estende US-ASCII per:
caratteri speciali non inclusi in US-ASCII
lingue straniere (orientali e slave)
Da Wikipedia: http://it.wikipedia.org/wiki/ASCII
24
Codifica binaria dei caratteri (codice UNICODE)
UNICODE
E’ un sistema a 16 bit e codifica 65536 caratteri e comprende:
quasi tutti i sistemi di scrittura attualmente utilizzati
glifi appartenenti a molte lingue morte
simboli matematici
simboli musicali
Da Wikipedia: http://it.wikipedia.org/wiki/Unicode