Decimale, binaria,esadecimale Introduzione Tutti i sistemi di numerazione sono posizionali nel senso che le cifre assumono un determinato valore a seconda della posizione occupata all’interno del numero Es: 245; 24; 2 Il numero 2 ha valori differenti all’interno delle tre cifre Sistema decimale Il sistema di numerazione decimale è il sistema di numerazione che abbiamo usato fin da piccoli Utilizza dieci simboli: 0 1 2 3 4 5 6 7 8 9 Il motivo è legato al numero delle dita delle mani Il sistema binario Il sistema binario è quello dei calcolatori È costuito da due simboli 1 e 0 La CPU dei calcolatori è costituita fondamentalmente di porte logiche,una sorta di interruttori che possono far passare o meno un segnale elettrico. Quando un segnale passa, si attribuisce un valore logico 1 altrimenti 0 Dal sistema decimale al sistema binario Per passare dal sistema decimale al binario, basta dividere ripetutamente la parte intera del numero in decimale per 2 e prendere il resto Es: (134)10 Il pedice sta ad indicare che ci troviamo in codice binario Procedimento dal sistema decimale al binario Numero in decimal e Quozie nti della divisio ne 134 Resti LSB: cifra meno significativa 0 67 1 33 1 16 0 8 0 4 0 2 0 1 1 Il numero in binario è 10000110 MSB: cifra più significativa Dal sistema decimale al binario Si noti che, se il numero è pari, termina con lo zero, se è dispari termina con 1 Le potenze di 2 sono date da 1 seguito da un numero di zeri uguali all’esponente di 2 Es (8)10=(23)10=(1000)2 Tutti i numeri che precedono una potenza di due sono dati da un numero di 1 uguale all’esponente di 2 Es (15)10=(24 -1)10=(1111)2 Dal sistema decimale al binario Se il numero in base dieci è formato da una parte intera e da una parte decimale, il procedimento per passare alla base decimale è il seguente: 1. La parte intera si trasforma normalmente con divisioni successive per 2 2. La parte decimale, viene isolata e moltiplicata per due in successione prendendo poi, solo la parte intera dei prodotti successivi ES Dal sistema decimale al binario 45,247 45:2= 24 resto 1; 24:2=12 resto 0; 12:2=6 resto 0; 6:2=3 resto 0; 3:2=1 resto 1; 1:2=0 resto 1 4510=1100012 0,247*2=0,494; 0.494*2=0,988; 0,988*2=1,978; 0,978*2=1,956; 0.956*2=1,912….. La parte decimale sarà: 0,00111 Il numero trasformato in binario:110001,00111 Dal sistema binario al sistema decimale Per passare dal sistema binario al decimale basta moltiplicare le cifre del numero in binario per le potenze crescenti di due a partire dalla cifra meno significativa Es: 111001100=0*20+0*21+1*22+1*23+0*24+ +0*25+1*26+1*27+1*28=0+0+4+8+64+128+256 =460 Se il numero in binario è munito anche di parte decimale, bisogna moltiplicare la parte decimale per potenze di due con esponente negativo. 10,1101=0*20+1*21+1*2-1+1*2-2+0*2-3+1*2-4 Operazioni con i numeri somma binari Sottrazione • se sottraendo ha un numero di bit più piccolo del minuendo, si aggiungono degli zeri come cifre più significative per eguagliare il numero di bit. • si fa il complemento a 1 e poi il complemento a 2 del sottraendo. Es: Con il complemento a 1 si trasformano in 1 gli zeri e 1 in zero; il numero così complementato viene aggiunto a 1100100+ 1 ottenendo il complemento a 2 1001110= •Il minuendo viene sommato al complemento a 2 del sottraendo. Del risultato si toglie la prima cifra Dalla meno significativa. significativ Es: 110011100-10011101 a:0100110 Minuendo: 110011100 Sottraendo: 010011101 (notare che è stato aggiunto 1 uno zero per eguagliare il numero di bit) Compl a 1=101100010 Compl a 2=101100010+1=101100011 10110010 1100011100+101100011=1011111111 0+0=0 1+0=0 1+0=0 1+1=10 Sistema esadecimale Il sistema esadecimale è formato da 16 simboli: 0 123456789ABCDEF Per passare dal sistema decimale al sistema binario bisogna fare le stesse operazioni effettuate per passare dal decimale al binario. Bisogna cioè dividere in successione il numero per 16 e prendere i resti Es: 56123 56123:16=3507 resto 11=B; 3507:16=214 resto 3; 214:16=13 resto 6; 13:16=0 resto 13=D D63B Dal sistema esadecimale al sistema decimale e binario •Per passare dal sistema esadecimale al sistema decimale basta moltiplicare le cifre del numero in esadecimale per le potenze crescenti di sedici a partire dalla cifra meno significativa Es: 48fcd= 13*160+12*161+15*162+8*163+4*164 •Per passare dal sistema esadecimale al sistema binario, basta trasformare in binario ogni singola cifra indipendentemente dalla posizione occupata. Ogni cifra deve però occupare sempre quattro bit. Si deve però partire dalla cifra pù significativa perché nella trasformazione in binario, la posizione ha importanza. Es: 48fcd= 0100 1000 1111 1100 1101 4 8 15 12 13 •Per passare dal sistema binario al sistema esadecimale, basta dividere il numero binario in gruppi di quattro bit a partire dalla cifra meno significativa e, trasformare ogni gruppo in esadecimale Es: 1 0011 1111 0000 0111= 13f07 Rappresentazione dei numeri reali I numeri reale possono essere in virgola fissa o in virgola mobile Nel primo caso, il numero di cifre significative è ben stabilito e non si può cambiare durante le operazioni Nelle operazioni in virgola mobile, le cifre significative possono cambiare e, se un’operazione da come risultato un valore con un numero di cifre significative più alto rispetto agli operandi, non si hanno approssimazioni Rappresentazione dei numeri reali Ogni numero reale può essere rappresentato nel seguente modo: (-1)sM*BE S è il segno: 0 se il numero è positivo, 1 se il segno è negativo M è la mantissa B è la base E è l’esponente Rappresentazione dei numeri reali Per meglio rappresentare i numeri con esponente sia positivo che negativo, si ricorre ad una strategia: all’esponente si pone sempre un valore costante detto bias= 127 In questo modo, se si ha un esponente negativo, l’esponente risultante sarà minore di 127, altrimenti, sarà maggiore La parte intera deve essere sempre 1 Nella mantissa si mettono tutte le cifre escluso la parte intera che si conosce già = 1 Esempi di rappresentazione di numeri reali 110011111001=1,10011111001*211= =1,10011111001*211+127=139 -0,0011100101=1,1100101*2-3= =1,1100101*2-3+127=124 Possiamo costruire la seguente tabella: segno mantissa esponente 0 10011111001 139 1 1100101 124