Rappresentazione Informazioni: testi, numeri, immagini, suoni, etc.; Come viene rappresentata l informazione in un calcolatore? Uso di tecnologia digitale: tutto ciò che viene rappresentato con numeri o che opera manipolando numeri, presi da un insieme di valori discreti, ovvero appartenenti a uno stesso insieme ben definito e circoscritto. Rappresentazione All interno di un computer le informazioni vengono rappresentate da 2 possibili valori di tensione elettrica {V high, V low }, da un differente stato di polarizzazione magnetica (positiva, negativa, da luce e buio, etc. L'elemento alla base del funzionamento dei computer è il transistor. Questo dispositivo elettronico, in particolari condizioni di operatività, si comporta come un vero e proprio interruttore. Combinando milioni di questi elementi per implementare funzionalità specifiche e raggruppandoli all'interno di diversi dispositivi elettronici dedicati (circuiti integrati si costituiscono gli elementi base di un computer (microprocessore, memorie, ecc.. Rappresentazione Unità minima di informazione: bit (binary digit. Digit dal latino digitus (dito. Ogni informazione viene trasformata nel calcolatore in una sequenza di bit (forma BINARIA, cioè in una sequenza di 0 e 1. 1000010 Codifica dei numeri È posizionale: il peso attribuito ad ogni cifra è funzione della posizione che occupa. Esempio: numero decimale 1235 1 2 3 5 1 10 3 2 10 2 3 10 1 5 10 0 numero decimale 1235 = 1 10 3 + 2 10 2 + 3 10 1 + 5 10 0
Alfabeto e base I sistemi di numerazione posizionale sono caratterizzati da un alfabeto α ed una base b. Alfabeto (α: è l insieme delle cifre disponibili per esprimere i numeri. Ad ogni cifra corrisponde un valore compreso tra 0 e (b -1. (Ad esempio, nella numerazione decimale l alfabeto è α = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Base (b: è il numero degli elementi che compongono l alfabeto. Ad esempio, nel caso decimale, b = 10. Generica numerazione in base p α = {0, 1, 2,, p-1} b = p un numero naturale N in base p è rappresentato da una sequenza di n cifre: a n-1 a n-2 a n-3 a 0 dove a i appartiene a α e i = 0,, n-1 a n-1 è la cifra più significativa (MSB = Most Significant Bit, mentre a 0 è la meno significativa (LSB = Least Significant Bit Esempi: binario: 01000100 b=2; α = {0, 1} ottale: 45107 b=8; α = {0,1,2,...7} esadecimale: AB502C b=16; α = {0,1,...,A,B,C,D,E,F} Base esadecimale Nella base esadecimale (b=16, i valori successivi al NOVE non possono essere indicati con la notazione decimale da dieci a quindici perché avrebbero tutt'altro significato. Ad esempio se scrivessimo: 10 questo rappresenterebbe il valore DIECI nella base 10 ( = 0*10 0 + 1*10 1 ma in base 16 questo equivale a 0*16 0 + 1*16 1 cioè 16 in base 10. Per questo motivo nella base 16 i valori da 10 a 15 decimali vengono indicati con A,B,C,D,E ed F. Conversioni di base Da base b a base 10 Per moltiplicazioni successive (partendo dal LSB Es: 1010 2 = (0 2 0 + 1 2 1 + 0 2 2 + 1 2 3 10 = 10 10 Es: 1AB 16 = ( 16 0 + 10 16 1 + 1 16 2 10 = 427 10 Da base 10 a base b per divisioni successive finché il quoziente è nullo e leggendo i resti in senso inverso (es: 10 = 10 2 dividendo divisore quoziente resto 2 5 1 5 2 2 1 2 2 1 0 1 2 0 1
Conversioni di base Da base 2 a base 8 (raggruppando le cifre a 3 a 3 dal LSB 100100 2 10.0.100 2 234 8 Da base 2 a base 16 (raggruppando le cifre a 4 a 4 dal LSB 100100 2 1001.00 2 9C 16 Minimo e massimo rappresentabile Il minimo ed il massimo valore rappresentabile per un numero binario puro N con n cifre a disposizione è: 0 <= N <= 2 n 1 Esempio: con 4 bit 0 <= N <= 15 10 (0 <= N <= 2 Minimo numero di bit n per rappresentare un valore dato N è: n = log 2 (N+1 = ceiling = primo intero superiore Es: N= 23 10 n= log 2 (24 = 5 (23 10 101 2 Somma binaria di numeri Viene eseguita incolonnando i numeri e sommando tra loro i bit incolonnati, partendo dai meno significativi, in ordine di peso crescente. Per la somma di due numeri positivi di lunghezza k possono essere necessari k+1 posti. Se sono disponibili solo k cifre si genera un errore di overflow (o trabocco. 100 + (19 10 001 + (25 10 000 = (6 10 10100 = (20 10 --------- ----------- 001 (25 10 1001 Overflow (infatti 45 non è rappresentabile con solo 5 bit Sottrazione binaria di numeri Viene eseguita incolonnando i numeri e sottraendo tra loro i bit incolonnati, partendo dai meno significativi, in ordine di peso crescente. Si suppone che il risultato sia positivo 1000 - (44 10 1000 = (35 10 001001 (9 10 Da dx a sx e da sotto in su : 1 a 0 =1 e riporto 1, 1+1che riportavo 0-a 0 0 e riporto 1, 1 a 1 0 senza rip, 0 a 1 1 senza rip, 0 a 0 0, 1 a 1 0
Moltiplicazione di numeri binari Si utilizza la stessa tecnica usata anche per i numeri in base 10 (somma e scorrimento. A = 10 2 = 10 B = 01 2 = 13 10 A B = 10 01 10 + 0000_ + 10 + 10 = 1000 = 143 10 Divisione di numeri binari Si usa la tecnica usata anche per i numeri in base 10 (differenza e scorrimento. Esempio: 10 2 = 47 10 2 = 3 10 10 / = = 15 10 0101-0101 - 0101 010 Resto Operazione di scorrimento (shift Shift verso sinistra Lo scorrimento verso sinistra di tutte le cifre del numero di una posizione con l inserimento di uno zero nella posizione di destra equivale a moltiplicare il numero per la base. Lo scorrimento di k posizioni verso sinistra equivale a moltiplicare il numero per b k. Es: 10 = 10 scorrimento di 2 a sinistra 1000 = 44 10 Operazione di scorrimento (shift Shift verso destra Lo scorrimento (shift verso destra di tutte le cifre del numero di una posizione con l inserimento di uno zero nella posizione di sinistra, equivale a dividere il numero per la base (cioè a moltiplicare il numero per b -1. Lo scorrimento di k posizioni verso destra equivale a moltiplicare il numero per b -k (cioè dividerlo per b k Es: 1010 = 1010 scorrimento di 2 a destra 0010 = 2 10 NB: il resto e dato dai bit usciti a destra (102 = 2 10
Numeri relativi Z = {-,, -1, 0, +1,, + } Rappresentazione con modulo e segno Il primo bit di un numero intero viene utilizzato come bit di segno (0 positivo, 1 negativo. Gli altri bit indicano il modulo (valore assoluto del numero. Es. con 5 bit: -10 10-01010 010 2 Rappresentazione in complemento a 1 I numeri positivi sono rappresentati dal loro modulo ed hanno il bit più significativo a zero. I numeri negativi si ottengono complementando tutti i bit (cioè scambiando 0 con 1, e viceversa. Pertanto hanno il primo bit sempre a 1. Es. con 8 bit: -34 10-00100010 0101 2 Rappresentazione in complemento a 2 I numeri positivi sono rappresentati dal loro modulo ed hanno il bit più significativo a zero. I numeri negativi si ottengono calcolando il complemento a 1, e poi sommandovi 1. Pertanto hanno il bit del segno sempre a 1. Es. Con 6 bit: -25 10-0001 1000 + 1 10 01 2 Minimo e massimo rappresentabile in complemento a 2 Il minimo ed il massimo valore rappresentabili per un numero binario (N in complemento a 2 con n cifre a disposizione è: -2 n-1 <= N <= 2 n-1 1 Esempio con 4 bit -8 10 <= N <= 7 10 (1000 2 <=N<=01 2 Operazione aritmetiche su numeri relativi Somma algebrica Sfrutta la rappresentazione in complemento a 2. Si sommano i numeri per colonna incluso il bit del segno, ignorando l eventuale riporto sul bit del segno. Si può avere un overflow solo se i due numeri da sommare hanno lo stesso segno ed il risultato ha il segno opposto. Esempi su 4 bit: 01+ (7 10 + (-5 10= (-5 1001 = (-7 1 0010 (2 1 0100 Overflow