Modulo 1 I numeri Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Codifica dei numeri Il sistema di numerazione che utilizziamo si dice arabo perché fu introdotto in Europa dagli arabi nel Medio Evo E decimale (o in base 10): esso rappresenta i numeri tramite sequenze di cifre che vanno da 0 a 9 (dieci cifre) E posizionale: il peso attribuito ad ogni cifra è funzione della posizione che occupa Esistono anche sistemi additivi (non posizionali), in cui ogni unità è rappresentata da un unico simbolo (es. il sistema romano) I sistemi posizionali consentono di Rappresentare numeri grandi con un numero limitato di cifre Di svolgere su di essi calcoli più efficienti Curtin Curtin 3.6 3.6 2 1
Rappresentazione posizionale Un numero naturale è un oggetto matematico, che può essere rappresentato mediante una sequenza di simboli di un alfabeto fissato. E importante distinguere tra numero e sua rappresentazione: il numerale 234 `e la rappresentazione del numero 234. Si distinguono 2 tipi di rappresentazione: additiva: ad es. le cifre romane posizionale: una cifra contribuisce con un valore diverso al numero a seconda della posizione in cui si trova Noi consideriamo solo la rappresentazione posizionale. Un numero è rappresentato da una sequenza finita di cifre di un certo alfabeto: c n-1 c n-2 c 1 c 0 = Nb c 0........ viene detta cifra meno significativa c n-1..... viene detta cifra più significativa 3 Sistemi Posizionali: Base e Alfabeto I sistemi di numerazione posizionale sono caratterizzati da una base b ed un alfabeto a: Alfabeto (a): è l insieme delle cifre disponibili per esprimere i numeri. Ad ogni cifra corrisponde un valore compreso tra 0 e (b-1) Ad esempio, nel sistema decimale a={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Base (b): è il numero degli elementi che costituiscono l alfabeto (dimensione dell alfabeto) Ad esempio, nel sistema decimale b=10 Esempi: Base 8 (ottale) a={0, 1, 2, 3, 4, 5, 6, 7} Base 16 (esadecimale) a={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} 4 2
Rappresentazione decimale posizionale Rappresentazione posizionale in base 10 Simboli uguali assumono valori diversi a seconda della loro posizione nel numero Somma delle potenze del 10 pesate per il valore del simbolo corrispondente Vantaggi: Semplice da leggere Aritmetica semplice (es. con i numeri romani è molto più complicato fare delle operazioni) 5 Il sistema di numerazione binario La notazione posizionale può essere usata in qualunque altro sistema di numerazione (con base diversa da 10) In un calcolatore viene solitamente usata la base 2. In analogia con il caso decimale, la sequenza c n c n-1 c n-2 c 1 c 0 (con c i che vale 0 o 1) rappresenterà il numero c n 2 n + c n-1 2 n-1 +c n-2 2 n-2 + c 1 2 1 +c 0 2 0 Ad esempio, la sequenza 1011 denota il numero 1x2 3 + 0x2 2 +1x2 1 + 1x2 0 =11 (in base 10) Per evitare ambiguità si usa la notazione 1011 2 = 11 10 6 3
Il sistema di numerazione binario 7 Rappresentazione binaria dei numeri 0-16 8 4
Conversioni binario!decimale binario!decimale (esempio) " 1001 2 = (1x2 3 + 0x2 2 +0x2 1 + 1x2 0 ) 10 = (1x 8 + 0x4 + 0x2 + 1x1 ) 10 =9 10 decimale!binario (esempio) 9 Operazioni binarie Per effettuare le operazioni binarie è necessario conoscere la definizione del comportamento per ogni coppia di simboli Per ogni operazione esiste una tabella Somma Binaria " 0 + 0 = 0 " 0 + 1 = 1 " 1 + 0 = 1 " 1 + 1 = 0 con il riporto di 1 " 1 + 1 + 1 = 1 con il riporto di 1 Sottrazione Binaria Sottrazione Binaria " 0-0 = 0 " 1-0 = 1 " 1-1 = 0 " 0-1 = 0 con il prestito di 1 dal bit di peso superiore 10 5
Moltiplicazione binaria Si usa la stessa tecnica usata per i numeri in base 10 (somma e scorrimento): Esempio A = (1011) 2 =(11) 10 B = (1101) 2 =(13) 10 11 Divisione di numeri binari Si usa la stessa tecnica usata per i numeri in base 10 (differenza e scorrimento): Esempio A = (101101) 2 =(45) 10 B = (11) 2 =(3) 10 12 6
Codifica dei numeri I numeri interi sono rappresentati come successioni di byte (2, 4 e 8 byte) Molte macchine usano interi a 32 bit (4 byte): 1 bit per rappresentare se ilnumero è positivo e negativo (sefgno), gli altri 31 per le cifre binarie del numero Con 32 bit si possono gestire numeri compresi tra 2.147.483.648 e 2.147.483.647 13 Overflow Sono le condizioni in cui si ha un errore nella rappresentazione del risultato La rappresentazione di un numero è formata da un numero finito di bit: se si supera tale limite si ha errore Overflow! traboccamento Si verifica se il risultato di un operazione non può essere rappresentato con il numero di bit a disposizione Si può avere overflow se il risultato delle operazioni richiede un numero maggiore di bit di quanto disponibile 14 7