Rappresentazione in virgola fissa
Transcript
Rappresentazione in virgola fissa
INFORMATICA Dicembre 2014 1BSA Docente Salvatore Mosaico parte 1 Codifica dei numeri REALI (RAZIONALI E IRRAZIONALI) con segno in base 2: • Rappresentazione in virgola fissa • Rappresentazione in virgola mobile (Floating Point) Rappresentazione in virgola fissa La rappresentazione in virgola fissa e cosi detta in quanto, stabilito il numero n di bit per memorizzare il numero reale (solitamente 8 16 32 64) si usa un bit per rappresentare il segno del numero ed i rimanenti n -1 bit vengono suddivisi in due parti una per la memorizzazione della parte intera e una per la parte frazionaria, separate esempio 16 bit 15 Segno +0= + 1= - 14 13 12 11 10 9 8 7 Parte intera 6 5 4 3 2 Parte Frazionaria , 1 bit per il segno 7 bit parte intera 8 bit parte frazionaria La virgoila tra 7 e 8 bit (immaginaria) 1 1 0 INFORMATICA Dicembre 2014 1BSA Docente Salvatore Mosaico parte 1 Ricordiamo che 29,37 nella forma polinomiale 2*101+9*100+3*10-1+7*10-2 =20+9+1/10+1/100 Ossia la parte decimale sono potenze negative di 10 Per convertire da base 10 a base in base 2 un numero frazionario Si mette 0 1 nel bit più significativo 0 positivo 1 negativo Si converte normalmente la parte intera in base 2 Si converte la parte frazionaria nel seguente modo: SI PROCEDE NEL SEGUENTE MODO: • si moltiplica il numero da convertire * 2 e si ottiene una parte intera e una decimale • si ripete a partire dalla parte decimale ottenuta e si ottiene una nuova parte intera e una decimale • fino ad ottenere una parte decimale 0 o raggiunto numero massimo bit a (numero periodico) • il numero convertito e formato da tutte le parti intere (la prima è la più significativa) • Con n bit fissato f come numero di bit dopo dei quali si fissa la virgola si ha che l'intervallo di dei valori rappresentabile va da -(2n- 1)・2 -f a +(2n- 1 -1)・2–f 2 INFORMATICA Dicembre 2014 1BSA Docente Salvatore Mosaico parte 1 ESEMPIO 1 Convertire in binario virgola fissa il numero 43,6875 (16 BIT) IL NUMERO È POSITIVO BIT 15 = 0 Covertiamo la parte intera DIVIDENDO 43 21 10 5 2 1 (43)1o=(101011)2 DIVISORE 2 2 2 2 2 2 QUOZIENTE 21 10 5 2 1 0 RESTO 1 1 0 1 0 1 (bit + significativo) Covertiamo la parte frazionaria (0,6875)1o fattore1 0,6875 0,375 0,75 0,5 fattore2 2 2 2 2 prodotto parte frazionaria 1,375 0,375 0,75 0,75 1,5 0,5 1 0 parte intera 1 (bit + significativo) 0 1 1 (0,6875)1o=(1011)2 Otteniamo dunque (43,6875)10 = (101011,1011)2 15 Segno +0= + 1= 0 14 13 12 11 10 9 8 7 6 Parte intera 0 1 0 1 0 5 4 3 2 1 0 0 0 Parte Frazionaria 1 1 1 , 3 0 1 1 1 0 INFORMATICA Dicembre 2014 1BSA Docente Salvatore Mosaico parte 1 ESEMPIO 2 (numero periodico) Convertire in binario il numero periodico 4,3737373737… (16 BIT) IL NUMERO È POSITIVO BIT 15 = 0 Covertiamo la parte intera DIVIDENDO 4 2 1 (4)1o=(100)2 DIVISORE 2 2 2 QUOZIENTE 2 1 0 RESTO 0 0 1 (bit + significativo) Covertiamo la parte frazionaria (0,37373737..)1o fattore1 fattore2 0,37373737 2 0,74747475 2 0,49494949 2 0,98989899 2 0,97979798 2 0,97979798 2 prodotto 0,74747475 1,49494949 0,98989899 1,97979798 1,95959596 1,95959596 parte frazionaria 0,74747475 0,49494949 0,98989899 0,97979798 0,95959596 0,95959596 (0,37373737..)1o =(01011111)2 Otteniamo dunque (44,37373737..)10 = (100,01011111)2 notiamo che spesso abbiamo sempre approssimazioni ( le cifre decimali inferiori a quelle reali) 4 parte intera 0 (bit + significativo) 1 0 1 1 1 (ripeto fino a 8 bit) INFORMATICA Dicembre 2014 1BSA Docente Salvatore Mosaico parte 1 Conversione di numeri razionali da base 2 a base 10: Si utilizza come per gli interi la forma polinomiale utilizzando le potenze negative per le cifre dopo la virgola (101,01)2 = 1*22 + 0*21 + 1*20 + 0*2-1 + 1*2-2 = = 4 + 0 + 1 + 0 + 0,25 = 5,25 perché 2-1 = 1/2 = 0,5 2-2 = 1/22 = ¼= 0.25 e in generale 2-n = 1/2n 5