Il sistema binario
Il sistema binario
MOTIVAZIONI
Tutti gli strumenti elettronici di nuova
generazione rappresentano le
informazioni sotto forma di numeri
binari
È più facile progettare un dispositivo
elettronico capace di riconoscere solo
due stati (0, 1) che dieci (0, 1, ... 9).
Il sistema binario
Sistema Numerico Decimale
Valori numerici rappresentati per
mezzo di dieci “simboli”:
alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Es. 2011
3,14
0,012
n, k ≥ 0
N10 anan1....a 2a 1a 0 .a1a2 ....ak
ai
base
virgola
posizione
Il sistema binario
N 10 anan1....a 2a 1a 0 .a1a2 ....ak
N 10 anbn an1bn-1 .... a2bn-2 a1bn-1 a0b0
a1b-1 a2b-2 .... ak b k
n, b ≥ 0
N10 2095.42
10
ai alfabeto
b = base-10
2 10 3 0 10 2 9 10 1 5 10 0 4 10 1 2 10 2
2 10 3 9 10 5 4 10 1 2 10 2
2000 90 5 0.4 0.02 2095.42
10
Il sistema binario
N 2 a na n 1....a 2a 1a 0 .a 1a 2 ....a k
base b = 2
alfabeto = {0, 1}
ai alfabeto,
n, b ≥ 0,
bit
N 2 11011.1012
1 2 1 2 0 2 1 2 1 2
4
1
3
2
2
3
1
0
1 2 0 2 1 2
1610 810 210 110 0.510 0.12510
27.62510
Il sistema binario
Si basa solo su 2 cifre: 0 1
Ogni cifra viene chiamata bit (Binary
digit)
Un gruppo di 8 bit forma 1 Byte
Con 1 Byte si possono ottenere 256
combinazioni (28 = 256)
Le combinazioni si associano ai
numeri fra 0 e 255 (256 numeri diversi)
Il sistema binario
Conversione da decimale a
binario
Metodo delle divisioni
successive:
(121)10 = (0111 1001)2
Si considerano i resti della
divisione per 2 dal basso
verso l’alto a gruppo di 4
121
60
30
15
7
3
1
0
1
0
0
1
1
1
1
Il sistema binario
Conversione da binario a decimale
Ogni bit viene moltiplicata per il peso (2 elevato alla
posizione) partendo da 0 e la somma dei prodotti è il
numero decimale corrispondente (64+32+16+8+1=121)
Bit
Posizioni
Pesi
Prodotti
0 1 1 1
7
4
3
2
1
0
128 64 32 16
8
4
2
1
8
0
0
1
0
6
5
1 0 0 1
64 32 16
Il sistema binario
Posizione:
Bit più significativo
(MSB)
4 3
2
1
0
10101
Bit meno significativo
(LSB)
1×24 + 0×23 + 1×22 + 0×21 + 1×20 =
16 +
0 +
4 +
0 +
1 =
21
Il sistema binario
Bit
Con n bit si possono
scrivere i numeri
interi compresi fra 0
e 2n - 1
Intervallo
1
Da 0 a 1
2
Da 0 a 3
3
Da 0 a 7
4
Da 0 a 15
5
Da 0 a 31
6
Da 0 a 63
7
Da 0 a 127
8
Da 0 a 255
9
Da 0 a 511
10
Da 0 a 1023
Il sistema binario
Codifica a 2 bit (4 configurazioni)
bin
00
01
10
11
Codifica a 3 bit (8 configurazioni)
bin
dec
000
001
010
011
100
101
110
111
0
1
2
3
4
5
6
7
dec
0
1
2
3
Il sistema binario
Oltre 10 bit si Es. con 13 bit il massimo è 213approssima
1 = 8191 ma si approssima con
per
13 = 23 * 210 = 8 K
2
convenzione
210
=K
220 = M
230 = G
240 = T
Es. con 26 bit il massimo è 2261 = 67.108.863 ma si
approssima con
226 = 26 * 220 = 64 M
Il sistema binario
Dalla tabella si desume
il numero minimo di bit
necessari per scrivere
un numero decimale
Es. per 50 servono
almeno 6 bit
Es. per 121 servono
almeno 7 bit
Bit
Intervallo
1
Da 0 a 1
2
Da 0 a 3
3
Da 0 a 7
4
Da 0 a 15
5
Da 0 a 31
6
Da 0 a 63
7
Da 0 a 127
8
Da 0 a 255
9
Da 0 a 511
10
Da 0 a 1023
Il sistema binario
Per il numero minimo di bit si può
procedere approssimando 3 cifre
decimali con 10 bit
Es. Per scrivere 12.890 servono 4 bit per
il 12 e 10 bit per le migliaia. Totale 14 bit
Es. Per scrivere 12.890.456 servono 4 bit
per il 12 e 20 bit per i milioni. Totale 24
bit
Il sistema binario
Somma in binario
(2)10=(10)2 e (3)10=(11)2
Riporto
1
1
1
1
1
Addendo
(60)
0
0
1
1
1
1
0
0
+
Addendo
(110)
0
1
1
0
1
1
1
0
=
Somma
(170)
1
0
1
0
1
0
1
0
Il sistema binario
Sottrazione in binario
Prestito
v
v
(2)10=(10)2
Minuendo
(102)
0
1
1
0
0
1
1
0
-
Sottraendo
(60)
0
0
1
1
1
1
0
0
=
Differenza
(42)
0
0
1
0
1
0
1
0
Il sistema binario
Moltiplicazione e divisione in binario
1101 x
1010
0000
1101
0000
1101
10000010
13x10=130
110011001 : 101 = 1010001
101
==10
101
101
===1
10
100
1001
101
=100
409/5=81 resto=4
Il sistema binario
Conversione con Excel
Da decimale
A binario
Da binario
A decimale
24
11000
110011001
409
Il sistema binario
Altri sistemi utilizzati
Ottale / Base 8: alfabeto = {0, 1, 2, 3, 4, 5, 6,
7}
Esadecimale / Base 16: alfabeto = {0, 1, 2,
3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Il sistema binario
Rappresentazione in Ampiezza e Segno
Il primo bit è usato per indicare il segno.
0 per il segno +
0000 2 010
1000 2 010
00012 110
10012 110
1 per il segno –
N.B. Presenza del
doppio zero
0010 2 210
1010 2 210
00112 310
10112 310
0100 2 410
1100 2 410
01012 510
11012 510
0110 2 610
1110 2 610
01112 710
11112 710
Il sistema binario
Eccesso P
X è rappresentato tramite la notazione binaria X + P.
Esempio: P=8
0000 2 810 1000 2 010
X=4 diviene 4+8=12=
00012 710 10012 110
(1100)2
0010 2 610 1010 2 210
X=-3 diviene -3+8=5=
00112 510 10112 310
(0101)2
0100 4
1100 4
2
10
01012 310
N.B. (-2)+(-3)=5
2
10
11012 510
0110 2 210 1110 2 610
01112 110
11112 710
Il sistema binario
Interi Negativi in Complemento a Uno
La rappresentazione
degli interi positivi
corrisponde a quella dei
primi 2n-1 numeri naturali
Quella dei numeri
negativi si ottiene
complementando i bit
N.B. Presenza del doppio
zero
0000 2 010
11112 010
00012 110
1110 2 110
0010 2 210
11012 210
00112 310
1100 2 310
0100 2 410
10112 410
01012 510
1010 2 510
0110 2 610
10012 610
01112 710
1000 2 710
Il sistema binario
Interi Negativi in Complemento a Due
La rappresentazione degli interi positivi
corrisponde a quella dei primi 2n-1 numeri
naturali
Quella dei numeri negativi si ottiene
aggiungendo una unità al complemento a
uno.
Esempio: 610 = 01102
-610 = C(01102)+1 = 1001+1 = 1010
Il sistema binario
Interi Negativi in Complemento a Due
0000
0
1000
-8
0001
1
1001
-7
0010
2
1010
-6
0011
3
1011
-5
0100
4
1100
-4
0101
5
1101
-3
0110
6
1110
-2
0111
7
1111
-1
Il sistema binario
Interi Negativi in Complemento a Due
I numero positivi hanno uno 0 in testa,
mentre i negativi un 1 in testa
Rappresentazione unica dello 0
Struttura ciclica: aggiungendo una unità al
massimo numero rappresentabile (+7) si
ottiene il minimo (-8)
Coerenza: Operazioni aritmetiche coi
numeri negativi utilizzando le stesse regole
dei numeri positivi
Il sistema binario
Interi Negativi in Complemento a Due
0101 5
0010 2
0111 7
0101 5
1110 2
1 0011 3
Il sistema binario
Interi Negativi in Complemento a Due
Overflow: il numero di bit a disposizione della
rappresentazione non è sufficiente per
rappresentare il risultato
overflow
overflow
corretto
1011 5
0011 3
0110 6
1001 9
1011 5
1110 2
1 1001 7
1010 6
1 0101 11
Il sistema binario
Numeri (non Interi) in formato Fixed Point
Definito il numero di bit per la
rappresentazione (16 o 32) e la
posizione del punto che rimane fissa,
le parti intere e frazionarie sono
convertite separatamente in base 2
Il sistema binario
Numeri in formato Fixed Point
Esempio: 22,72265625
Parte intera
22 = 1 01102
22
0
11
1
5
1
2
0
1
1
0
Il sistema binario
Numeri in formato Fixed Point
Esempio: 22,72265625
Parte frazionaria
0,72265625 =
1011 10012
1
0
1
1
1
0
0
1
0
0,72265625
0,44531250
0,890625
0,78125
0,5625
0,125
0,25
0,5
0
0
Il sistema binario
Conversione da decimale a binario della
parte frazionaria
Metodo delle moltiplicazioni successive
Si considerano le parti intere delle
moltiplicazioni per 2 della parte frazionaria
dall’alto verso il basso
Il sistema binario
Numeri in formato Fixed Point
Esempio: 22,72265625
Parte intera 22 = 1 01102
Parte frazionaria 0,72265625 =
1011 10012
Scegliendo la posizione del punto dopo 6
cifre:
Risultato = 0101 10.10 1110 01002
Il sistema binario
Numeri (non Interi) in formato Floating Point
Il numero R è espresso nella forma
R M 2
E
E esponente o caratteristica: numero intero relativo
rappresentato in eccesso 127 (bias) e quindi valori
0 fra 255 corrispondono a quelli fra -127 +128. I
valori 0 e 255 vengono riservati per funzioni
speciali, per cui E è compreso fra -126 e 127
M mantissa: numero razionale con una parte intera
e una frazionaria rappresentato in virgola fissa e in
ampiezza e segno
Il sistema binario
Numeri in formato Floating Point
Standard IEEE 754 (1985):
31 30
s
23 22
E
0
M
esponente
E=e+127
segno della mantissa ( 0= +, 1= - )
mantissa
Parte frazionaria di M
Il sistema binario
Numeri in formato Floating Point
R M 2
E
E: assume valori tra -127 e +128
M: punto decimale implicitamente assunto
alla destra del bit più significativo. In forma
normalizzata cioè la parte intera costituita da
un unico bit pari a 1 che non viene
rappresentato
Il sistema binario
Numeri in formato Floating Point
Esempio:
Il numero 0,21484375 corrisponde in
binario a 0.0011 0111
Normalizzato: 1.10111 x 2-3
La mantissa, nascondendo il bit più
significativo, diviene 10111
L’esponente -3, in notazione eccesso 127,
diviene -3+127 = 124 = (0111 1100 )2
Il sistema binario
Numeri in formato Floating Point
Esempio (cont.):
Il numero 0,21484375 è convertito in
31 30
0
23
0111 1100
22
0
101 1100 0000 0000 0000 0000
Esponente (124):
-3 in notazione
eccesso 127
Bit di segno: 0 (positivo)
Mantissa
Il sistema binario
Numeri in formato Floating Point
Esempio: Il numero 1100 0011 1101 0000
0000 0000 0000 0000 è convertito in
31 30
1
23
1000 0111
22
0
101 0000 0000 0000 0000 0000
Esponente (135):
8 in notazione
eccesso 127
Mantissa: 0.625
ovvero 1.625
Bit di segno: 1 (negativo)
Risultato: R=M.2° = -1.625 x 28 = -416
Il sistema binario
Numeri in formato Floating Point
Range dei valori:
Mantissa 23 bit + 1 bit a 1 sottointeso: da 1.00…00 a
1.11…11 cioè da 1 a 1 + ( 1 – 223) = 2 – 223
Esponente 8 bit 0 a 28-1 = 255. Per l’eccesso 127 il
range diviene da -127 a 128 ristretto a -126→127
Numero più grande rappresentabile = (2 – 223) x 2127 ≈
1.43 x 1045 =
1.430.000.000.000.000.000.000.000.000.000.000.000.000.000.000
Numero positivo più piccolo rappresentabile = 1 x 2-126
≈ 1.18 x 10-38 =
0,000 000 000 000 000 000 000 000 000 000 000 000 011 8
Il sistema binario
Numeri in formato Floating Point
Eccezioni:
Categoria
Esp.
Mantissa
Zeri
0 (-127)
0
Numeri denormalizzati
0 (-127)
non zero
Numeri normalizzati
1-254 (-126/127)
qualunque
Infiniti
255 (128)
0
Nan (not a number)
255 (128)
non zero
Il sistema binario
Numeri in formato Floating Point
Precisione
E
M
Totale
Decimale
Singola
8
23
32b = 4B
7
Doppia
11
52
64b = 8B
16
Quadrupla
15
122
128b = 16B
34