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).
Sistema Numerico Decimale 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 base posizione virgola
Il sistema binario n, b ≥ 0 alfabeto b = base-10
Il sistema binario n, b ≥ 0, alfabeto, base b = 2 alfabeto = {0, 1} bit
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 1 60 30 15 7 3
Il sistema binario 1 Bit Posizioni Pesi Prodotti 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 1 Posizioni 7 6 5 4 3 2 Pesi 128 64 32 16 8 Prodotti
Bit meno significativo Il sistema binario Posizione: 4 3 2 1 0 Bit più significativo (MSB) 1 0 1 0 1 Bit meno significativo (LSB) 1 × 2 4 + 0 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 = 16 + 0 + 4 + 0 + 1 = 21
Il sistema binario 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 Con n bit si possono scrivere i numeri interi compresi fra 0 e 2n - 1
Il sistema binario Codifica a 2 bit (4 configurazioni) bin dec 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 bin dec 00 0 01 1 10 2 11 3
Il sistema binario Oltre 10 bit si approssima per convenzione 210 = K 220 = M 230 = G 240 = T Es. con 13 bit il massimo è 213-1 = 8191 ma si approssima con 213 = 23 * 210 = 8 K Es. con 26 bit il massimo è 226-1 = 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 Addendo (60) + (110) = Somma (170)
Il sistema binario Sottrazione in binario (2)10=(10)2 1 - = Prestito v Minuendo (102) 1 - Sottraendo (60) = Differenza (42)
Il sistema binario Moltiplicazione e divisione in binario 110011001 : 101 = 1010001 101 ==10 ===1 10 100 1001 =100 409/5=81 resto=4 1101 x 1010 0000 1101 10000010 13x10=130
Il sistema binario Conversione con Excel
Altri sistemi utilizzati 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}
Rappresentazione in Ampiezza e Segno Il sistema binario Rappresentazione in Ampiezza e Segno Il primo bit è usato per indicare il segno. 0 per il segno + 1 per il segno – N.B. Presenza del doppio zero
Il sistema binario Eccesso P N.B. (-2)+(-3)=5 X è rappresentato tramite la notazione binaria X + P. Esempio: P=8 X=4 diviene 4+8=12= (1100)2 X=-3 diviene -3+8=5= (0101)2 N.B. (-2)+(-3)=5
Interi Negativi in Complemento a Uno 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
Interi Negativi in Complemento a Due 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
Interi Negativi in Complemento a Due Il sistema binario Interi Negativi in Complemento a Due 0000 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
Interi Negativi in Complemento a Due 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
Interi Negativi in Complemento a Due Il sistema binario Interi Negativi in Complemento a Due
Interi Negativi in Complemento a Due 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
Numeri (non Interi) in formato Fixed Point 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
Numeri in formato Fixed Point Il sistema binario Numeri in formato Fixed Point Esempio: 22,72265625 Parte intera 22 = 1 01102 22 11 1 5 2
Numeri in formato Fixed Point Il sistema binario Numeri in formato Fixed Point Esempio: 22,72265625 Parte frazionaria 0,72265625 = 1011 10012 0,72265625 1 0,44531250 0,890625 0,78125 0,5625 0,125 0,25 0,5
Conversione da decimale a binario della parte frazionaria 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
Numeri in formato Fixed Point 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
Numeri (non Interi) in formato Floating Point Il sistema binario Numeri (non Interi) in formato Floating Point Il numero R è espresso nella forma 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
Numeri in formato Floating Point Il sistema binario Numeri in formato Floating Point Standard IEEE 754 (1985): M E s mantissa Parte frazionaria di M esponente E=e+127 segno della mantissa ( 0= +, 1= - ) 31 30 23 22 0
Numeri in formato Floating Point Il sistema binario Numeri in formato Floating Point 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
Numeri in formato Floating Point 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
Numeri in formato Floating Point Il sistema binario Numeri in formato Floating Point Esempio (cont.): Il numero 0,21484375 è convertito in 101 1100 0000 0000 0000 0000 0111 1100 Mantissa Esponente (124): -3 in notazione eccesso 127 Bit di segno: 0 (positivo) 31 30 23 22 0
Numeri in formato Floating Point Il sistema binario Numeri in formato Floating Point Esempio: Il numero 1100 0011 1101 0000 0000 0000 0000 0000 è convertito in 101 0000 0000 0000 0000 0000 1000 0111 1 Mantissa: 0.625 ovvero 1.625 Esponente (135): 8 in notazione eccesso 127 Bit di segno: 1 (negativo) 31 30 23 22 0 Risultato: R=M.2° = -1.625 x 28 = -416
Numeri in formato Floating Point 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
Numeri in formato Floating Point Numeri denormalizzati Il sistema binario Numeri in formato Floating Point Eccezioni: Categoria Esp. Mantissa Zeri 0 (-127) Numeri denormalizzati non zero Numeri normalizzati 1-254 (-126/127) qualunque Infiniti 255 (128) Nan (not a number)
Numeri in formato Floating Point 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