k
X
di × 10i
i= 0
Binary 1 1 1 1 1 0 1 0 0 0 1
1 × 210 + 1 × 29 + 1 × 28 + 1 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 1 × 20
1024 + 512 + 256 + 128 + 64 +0 + 16 +0 +0 +0 +1
Octal 3 7 2 1
3 × 83 + 7 × 82 + 2 × 81 + 1 × 80
1536 + 448 + 16 + 1
Decimal 2 0 0 1
2 × 103 + 0 × 102 + 0 × 101 + 1 × 100
2000 + 0 +0 +1
Hexadecimal 7 D 1 .
7 × 162 + 13 × 161 + 1 × 160
1792 + 208 +1
Conversione tra Basi
◮ Due parole (in alfabeti diversi) sono equivalenti se
odi
ano
lo stesso numero naturale.
◮ Convertire una sequenza signi
a trovare una parola (in un
alfabeto diverso) equivalente alla prima.
◮ Convertire un numero in notazione ottale o esade
imale in
notazione binaria (o vi
eversa) è molto sempli
e.
◮ Se si parte da un numero in notazione de
imale e lo si vuole
onvertire in notazione binaria si può pro
edere per divisioni
su
essive.
◮ Vi
eversa, un numero in notazione binaria può essere
onvertito in notazione de
imale pro
edendo per
moltipli
azioni su
essive.
◮ Comunque, è sempre possibile utilizzare la denizione vista in
pre
edenza: una sequenza sk . . . s s s in base b
odi
a il
2 1 0
numero naturale
k
X
si × bi
i= 0
Esempi di Conversione
Example 1
Hexadecimal 1 9 4 8 . B 6
Binary 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0. 1 0 1 1 0 1 1 0 0
Octal 1 4 5 1 0 . 5 5 4
Example 2
Hexadecimal 7 B A 3 . B C 4
Binary 0111101110100011 101111000100 .
Octal 7 5 6 4 3 . 5 7 0 4
Esempi di Conversione
Quotients Remainders
1492
746 0
373 0
186 1
93 0
46 1
23 0
11 1
5 1
2 1
1 0
0 1
1 0 1 1 1 0 1 0 1 0 0 = 149210
Esempi di Conversione
1 0 1 1 1 0 1 1 0 1 1 1
partenza.
Numeri Binari Negativi
◮ Ad esempio, se si vuole rappresentare −6
on 8 bit in
omplemento a due, si parte da 6 in binario:
00000110,
si passa a −6 in
omplemento a uno:
11111001,
e si arriva a −6 in
omplemento a due:
11111010.
◮ Data una stringa in
omplemento a due, di
iamo
sk sk − . . . s s , il numero da essa rappresentato è ottenuto
1 1 0
mediante la formula:
k−
X 1
k
−sk × 2 + si × 2i
i= 0
Numeri Binari
◮ L'intervallo di numeri rappresentabili dipende dal sistema
utilizzato e dal numero di bit a disposizione. Supponiamo nel
seguito di utilizzare k bit.
◮ La dimensione dell'intervallo rappresentabile
res
e
esponenzialmente
on k .
◮ Se
i interessano solo i numeri naturali, possiamo
rappresentare l'intervallo
ompreso tra 0 e 2k − 1.
◮ Se k = 8 l'intervallo sarà quello tra 0 e 255.
Addendo 0+ 0+ 1+ 1+
Addendo 0= 1= 0= 1=
Somma 0 1 1 0
Riporto 0 0 0 1
Aritmeti
a Binaria
◮ La somma aritmeti
a tra due numeri in notazione binaria si
eettua seguendo un pro
edimento in uso nell'aritmeti
a
de
imale.
◮ Nell'aritmeti
a in
omplemento a uno, il riporto generato dai
due bit più signi
ativi viene sommato al bit meno
signi
ativo.
◮ Nell'aritmeti
a in
omplemento a due, il riporto generato
dalla somma dei bit più signi
ativi viene sempli
emente
s
artato.
◮ Per quanto riguarda l'overow:
◮ Se gli addendi hanno segno opposto non si è veri
ato
overow.
◮ Se gli addendi hanno lo stesso segno e il risultato ha segno
opposto, si è veri
ato overow.
◮ Se gli addendi e il risultato hanno tutti lo stesso segno, si ha
overow se e solo se il risultato in
orrispondenza del bit di
segno dieris
e dal riporto generato oltre il bit di segno.
Somma in Complemento a Uno e in Complemento a Due
10 00001010 00001010
+ (−3) 11111100 11111101
+7 1 00000110 1 00000111
carry 1 discarded
00000111
Rappresentare Numeri
on Virgola
0, 000001 = 0, 1 × 10− 5
= 1, 0 × 10− 6
◮ Supponiamo di rappresentare:
◮ La frazione f
on 0 oppure
on un valore
on segno a tre
ifre
tale
he 0, 1 ≤ |f | < 1.
◮ L'esponente è un valore
on segno a due
ifre.
◮ Queste rappresentazioni variano, in modulo, da 0, 1 × 10− a 99
3 5
Negative Positive
underflow underflow
1 2 4 6 7
Negative Expressible Zero Expressible Positive
overflow negative numbers positive numbers overflow
0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 = 2 (1 × 2 + 1 × 2 + 1 × 2
20 –12 –13 –15
Unnormalized: 0 1010100
.0
Sign Excess 64 Fraction is 1 × 2–12+ 1 × 2–13 + 1 × 2–16) = 432
+ exponent is +1 × 2–15+ 1 × 2–16
84 – 64 = 20
To normalize, shift the fraction left 11 bits and subtract 11 from the exponent.
+ exponent is
69 – 64 = 5
To normalize, shift the fraction left 2 hexadecimal digits, and subtract 2 from the exponent.
+ exponent is
67 – 64 = 3
Codi
a dei Caratteri
◮ Quando l'insieme dei dati da rappresentare è l'insieme delle
parole in un
erto linguaggio naturale, o
orre prima di tutto
apire
ome si
odi
ano i singoli
aratteri, le singole lettere.
◮ Il primo tentativo fu il
odi
e ASCII (Ameri
an Standard Code
for Information Inter
hange).
◮ Ogni
arattere è
odi
ato da un intero a 7 bit.
◮ In totale, quindi, abbiamo 128
aratteri distinti.
◮ Diversi linguaggi naturali, però, utilizzano insiemi di
aratteri
diversi. Per questo motivo si introdusse il
on
etto di
ode
page,
◮ Un insieme di 256
aratteri spe
i
o di una lingua o di un
gruppo di lingue.
◮ Il
odi
e destinato a diventare lo standard è
hiamato
UNICODE.
◮ Ad ogni
arattere è asso
iata una sequenza di 16 bit
hiamata
ode point.
◮ A
ias
un alfabeto è asso
iato un insieme di
ode point tra loro
onse
utivi (nel senso degli interi
orrispondenti ai
ode point).