Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Rappresentazione dei Numeri nel Computer: Sistema Binario e Aritmetica Floating Point, Sbobinature di Informatica

In dettaglio come i numeri sono rappresentati all'interno dei computer, concentrandosi sul sistema binario e sull'aritmetica floating point. Vengono esaminati i concetti di numeri macchina, la rappresentazione di interi e reali, e le limitazioni imposte dalla lunghezza della parola. Inoltre, vengono discussi gli errori di arrotondamento, la precisione di macchina e la complessità degli algoritmi, fornendo una panoramica completa delle sfide e delle soluzioni nella computazione numerica. Una solida base per comprendere le fondamenta dell'informatica e l'importanza della precisione nei calcoli numerici.

Tipologia: Sbobinature

2024/2025

In vendita dal 11/09/2025

anna-ometto-1
anna-ometto-1 🇮🇹

44 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I NUMERI MACCHINA
Il calcolo numerico, o analisi numerica, è una branca della matematica applicata che risolve i modelli
prodotti dallanalisi matematica.
Esso fornisce procedure di calcolo (algoritmi numerici) che consentono di individuare con luso del
computer la soluzione di un problema, eventualmente in forma approssimata.
Quando si usa un computer per fare calcoli scientifici, è importante conoscere il modo con cui la
macchina rappresenta i numeri.
Nel computer i numeri sono rappresentati usando il sistema binario, cioè come una sequenza di bit
che possono assumere i valori 0 o 1.
A ogni numero viene riservato uno spazio di memoria capace di contenere un particolare numero di
bit, detto parola.
La gamma di numeri macchina che si può rappresentare nel computer dipende dalla lunghezza
della parola.
Se L è la lunghezza della parola nel computer si possono rappresentare soltanto quei numeri la cui
rappresentazione binaria è costituita da un numero di bit minore o uguale a L: questi sono chiamati
numeri macchina.
La rappresentazione dei numeri interi
Numeri interi: con parole di lunghezza L si possono rappresentare tutti gli interi compresi
nell’intervallo [ -2L-1, +2L-1 -1] (il -1 all’esponente rappresenta il bit che perdiamo per
rappresentare il segno del numero, mentre il -1 indica il fatto che è possibile rappresentare anche
lo 0).
Per il computer i numeri al di fuori dell’intervallo rappresentabile semplicemente non esistono;
esempio: se a un computer con parola di 16 bit si chiede di eseguire la somma 2L-1 -1 +1, il risultato
sa un overflow, il computer non può rappresentare interamente il numero.
Ogni computer può quindi rappresentare soltanto un sottoinsieme finito di Z dei numeri relativi; gli
interi del sottoinsieme sono però rappresentati in modo esatto, mentre i numeri reali, i quali hanno
generalmente un numero infinito di decimali, il computer è in grado di rappresentarli solo in modo
approssimato.
La rappresentazione dei numeri reali
Qualsiasi numero reale x si può scrivere: x = a·βE, dove a è un numero reale, β è la base di
numerazione usata, ed E che è un numero intero dotato di segno.
Questa rappresentazione detta floating point non è univoca; in informatica si usa come
rappresentazione univoca quella dei numeri floating point normalizzati, in cui il fattore a ha la parte
intera costituita da un’unica cifra diversa da 0.
La rappresentazione dei numeri floating point normalizzati
x = (1)s*(a1*a2*a3 ... an) ·βE
- S rappresenta il segno del numero, e può valere 0 o 1.
- I simboli ai rappresentano le N cifre della mantissa, che sono dette cifre significative del
numero
In generale per le cifre significative della mantissa vale la condizione 0 ai β 1, ma per la prima
cifra significativa si deve avere a1 != 0.
La singola e la doppia precisione
Nel computer i numeri macchina che rappresentano i numeri reali sono espressi nel formato floating
point normalizzato in base 2 (β=2); in questa base l’unico valore possibile per la prima cifra della
mantissa è 1; perciò si da questo valore per scontato e si memorizzano soltanto le cifre da a2 in
avanti, guadagnando così una cifra significativa in più.
Lo zero non appartiene all’insieme F dei numeri floating point normalizzati, percavrebbe la prima
cifra uguale a 0; esso viene quindi trattato a parte.
pf3
pf4

Anteprima parziale del testo

Scarica Rappresentazione dei Numeri nel Computer: Sistema Binario e Aritmetica Floating Point e più Sbobinature in PDF di Informatica solo su Docsity!

I NUMERI MACCHINA

Il calcolo numerico, o analisi numerica, è una branca della matematica applicata che risolve i modelli prodotti dall’analisi matematica. Esso fornisce procedure di calcolo (algoritmi numerici) che consentono di individuare con l’uso del computer la soluzione di un problema, eventualmente in forma approssimata. Quando si usa un computer per fare calcoli scientifici, è importante conoscere il modo con cui la macchina rappresenta i numeri. Nel computer i numeri sono rappresentati usando il sistema binario, cioè come una sequenza di bit che possono assumere i valori 0 o 1. A ogni numero viene riservato uno spazio di memoria capace di contenere un particolare numero di bit, detto parola. La gamma di numeri macchina che si può rappresentare nel computer dipende dalla lunghezza della parola. Se L è la lunghezza della parola nel computer si possono rappresentare soltanto quei numeri la cui rappresentazione binaria è costituita da un numero di bit minore o uguale a L: questi sono chiamati numeri macchina. La rappresentazione dei numeri interi Numeri interi: con parole di lunghezza L si possono rappresentare tutti gli interi compresi nell’intervallo [ - 2 L-^1 , +2L-^1 - 1] (il - 1 all’esponente rappresenta il bit che perdiamo per rappresentare il segno del numero, mentre il - 1 indica il fatto che è possibile rappresentare anche lo 0). Per il computer i numeri al di fuori dell’intervallo rappresentabile semplicemente non esistono; esempio: se a un computer con parola di 16 bit si chiede di eseguire la somma 2L-^1 - 1 +1, il risultato sarà un overflow, il computer non può rappresentare interamente il numero. Ogni computer può quindi rappresentare soltanto un sottoinsieme finito di Z dei numeri relativi; gli interi del sottoinsieme sono però rappresentati in modo esatto, mentre i numeri reali, i quali hanno generalmente un numero infinito di decimali, il computer è in grado di rappresentarli solo in modo approssimato. La rappresentazione dei numeri reali Qualsiasi numero reale x si può scrivere: x = a·βE, dove a è un numero reale, β è la base di numerazione usata, ed E che è un numero intero dotato di segno. Questa rappresentazione detta floating point non è univoca; in informatica si usa come rappresentazione univoca quella dei numeri floating point normalizzati, in cui il fattore a ha la parte intera costituita da un’unica cifra diversa da 0. La rappresentazione dei numeri floating point normalizzati *x = (–1)s(a 1 a 2 a 3 ... an) ·βE

  • S rappresenta il segno del numero, e può valere 0 o 1.
  • I simboli ai rappresentano le N cifre della mantissa, che sono dette cifre significative del numero In generale per le cifre significative della mantissa vale la condizione 0 ≤ ai ≤ β – 1, ma per la prima cifra significativa si deve avere a 1 != 0. La singola e la doppia precisione Nel computer i numeri macchina che rappresentano i numeri reali sono espressi nel formato floating point normalizzato in base 2 (β=2); in questa base l’unico valore possibile per la prima cifra della mantissa è 1; perciò si da questo valore per scontato e si memorizzano soltanto le cifre da a 2 in avanti, guadagnando così una cifra significativa in più. Lo zero non appartiene all’insieme F dei numeri floating point normalizzati, perché avrebbe la prima cifra uguale a 0; esso viene quindi trattato a parte.

La singola precisione In singola precisione vengono riservati 4 byte di memoria ovvero 32 bit di cui:

  • 1 per il segno
  • 8 per l’esponente
  • 23 per la mantissa (che avrà quindi 24 cifre significative) La singola precisione permette di rappresentare i decimali con valore assoluto compreso in rodine di grandezza tra 10 -^38 e 10^38 , con 7 cifre significative. La doppia precisione In singola precisione vengono riservati 8 byte di memoria ovvero 64 bit di cui:
  • 1 per il segno
  • 11 per l’esponente
  • 52 per la mantissa (che avrà quindi 53 cifre significative) La doppia precisione permette di rappresentare i decimali con valore assoluto compreso in rodine di grandezza tra 10 -^308 e 10^308 , con 16 cifre significative. Nel computer i numeri sono discreti: la rappresentazione dei numeri come parole di lunghezza fissa ha numerose importanti conseguenze, tra cui:
  • Mentre l’insieme R dei reali è infinito, in un computer se ne può rappresentare soltanto un sottoinsieme finito F (insieme dei numeri macchina), con limite inferiore e superiore.
  • Un numero reale non si rappresenta in modo esatto, ma con un numero macchina che lo approssima arrotondando per eccesso o per difetto.
  • Non sempre un’operazione tra numeri macchina produce un risultato: se il risultato è un numero più grande dell’estremo superiore di F, si ha un overflow, altrimenti, se il risultato è più piccolo dell’estremo inferiore di F, si ha un under flow.
  • R e F non sono ugualmente densi, infatti R è continuo (dati due numeri reali ne esiste sempre uno compreso tra essi) mentre F è discreto, cioè non continuo. GLI ERRORI E L’ATTENDIBILITA’ DEI RISULTATI Ogni calcolo numerico è inevitabilmente approssimato, perché nel computer non si possono rappresentare in modo esatto i numeri reali. L’approssimazione dei calcoli numerici fatti al computer si misura con l’errore di arrotondamento assoluto o relativo. Dato un numero reale x, chiamiamo fl(x) il numero macchina usato per rappresentarlo. Per descrivere l’errore di arrotondamento commesso si possono definire un errore assoluto e uno relativo. Errore assoluto : x – fl(x) Errore relativo : |"#$%(")| |(| L’indicatore più utile è l’errore relativo che misura l’accuratezza del risultato. La epsilon macchina La epsilon macchina o precisione di macchina è un indicatore della precisione di calcolo di un computer. Viene indicata con il simbolo ε oppure εM e rappresenta la distanza tra 1 e il più piccolo numero macchina maggiore di 1. La epsilon macchina rappresenta il massimo errore relativo che si commette nell’approssimare il numero reale x con il suo corrispondente numero macchina fl(x). Per l’errore relativo vale infatti: Errore relativo: |)#*+())| |,| <= ½ εM Nei numeri floating point normalizzati in base 2 si ha che: in singola precisione (24 c.significative): εM = 1,19 * 10-^7 in doppia precisione (53 c.significative): εM = 2,22 * 10-^16

La difficoltà dei problemi La difficoltà di un problema è determinata dalla rapidità di crescita della funzione argomento di O per il più efficiente algoritmo risolutivo del problema. Per i problemi difficili l’algoritmo risolutivo più efficiente ha come argomento di O() una funzione che cresce rapidamente con n. I problemi in cui il tempo di calcolo per la soluzione aumenta al crescere di n come una potenza di n, sono detti di classe P (polinomiale); i problemi come quelli della fattorizzazione sono invece detti di classe NP (non-deterministic polynomial). Caratteristica cifratura RSA: estrema difficoltà del problema e l’estrema facilità del problema inverso. VALUTAZIONE DEL TEMPO DI CALCOLO DI UN ALGORITMO Per ottenere una valutazione affidabile della complessità di un algoritmo misuriamo il tempo di calcolo in numero di operazioni necessarie per fornire risultati, e chiamiamo questo numero costo dell’algoritmo. Per valutare il costo di un algoritmo sulla base del numero di operazioni che l’algoritmo deve svolgere per produrre i risultati finali, andiamo a valutare il costo delle singole istruzioni introducendo alcune regole di valutazione:

  1. istruzioni semplici (lettura, scrittura, assegnamento); hanno costo pari a 1 (COSTO = 1).
  2. costrutti iterativi (mentre…finementre; ripeti…finchè): somma del costo del test e del corpo del ciclo:
  • ciclo post condizionale: costo test * k + costo corpo * k = k (1+ costo corpo)*
  • ciclo pre condizionale: costo test * (k+1) + costo corpo * k = (k+1) + costo corpo * k
  1. costrutti iterativi (per…esegui) : costo variabile del ciclo (costo=1) + costo condizione finale del ciclo (costo = k+1) + costo corpo* k + costo incremento variabile del ciclo (costo=k) = *2 * (k+1) + costo corpo k
  2. costrutto di selezione (se…allora…altrimenti): costo del test (costo=1) + costo allora o costo altrimenti (quello con più istruzioni) = 1 + costo allora/ altrimenti
  3. chiamata al sottoprogramma (costo 1 + costo sottoprogramma)