Corso di Informatica
(Programmazione)
Lezione 2 (10 ottobre 2008)
Codifica binaria degli interi con segno
in Complemento a 1
Codifica binaria degli interi con segno
in Complemento a 2
Somma algebrica in Complemento a 2
Codifica dei caratteri
1
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
2
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
0
0
0
0
0
1
0
1
+5
1
1
1
1
1
0
1
0
-5
La negazione di un numero si
ottiene complementando bit del
segno e bit del modulo
Il complemento di una
sequenza di bit è la sequenza
che si ottiene sostituendo
0 con 1 e 1 con 0
3
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.
4
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)
5
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
0
1
0
1
0
1
0
1
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
6
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 1” (n=8 bit)
1
1
0
1
0
1
0
1
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
7
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
8
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
0
0
0
0
0
1
0
1
+5
La negazione di un numero si
ottiene complementando bit del
segno e bit del modulo e
aggiungendo 1 al modulo
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1 +1
1
1
1
1
1
0
1
1
-5
9
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.
10
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
11
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
0
1
0
1
0
1
0
1
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
12
Codifica binaria degli interi con segno
Esempio: codifica in “Complemento a 2” (n=8 bit)
1
1
0
1
0
1
0
1
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
13
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
14
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit  intervallo di rappresentazione [-8, +7]
1
0
0
1
0
0
1
0
1
0
1
1
-7
+2
-5
Somma senza riporto  risultato corretto
15
Codifica binaria degli interi senza segno
Esempio: somma di interi in “Complemento a 2”
con 4 bit  intervallo di rappresentazione [-8, +7]
1
0
1
1
1
1
1
1
0
0
1
0
1
+7
-2
+5
Somma con 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]
0
1
1
1
0
0
1
0
1
0
0
1
+7
+2
+9
Somma senza riporto  risultato errato
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
0
0
1
1
1
1
0
0
1
1
1
-7
-2
-9
Somma con riporto  risultato errato
18
Codifica binaria di oggetti
In generale con n bit si possono
codificare 2n oggetti
Ad 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
19
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
20
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
21
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
22
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
23
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
24
Scarica

ProgrammazioneLEZ2