Esercitazione del 05/03/ Soluzioni

Documenti analoghi
Esercitazione 1 del 07/10/2011

Esercitazione del 09/03/ Soluzioni

Esercitazione 1 del 10/10/2012

Esercitazione del 2/3/2010- Numeri binari e conversione

Esercitazione 1 del 9/10/2013

Esercitazione del 03/03/ Soluzioni

Esercitazione 1 del 8/10/2014

Laboratorio del 21/10/2010- Numeri binari e conversione

Codifica dell Informazione per il Calcolo Scientifico

Lezione 2. Rappresentazione dell informazione

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

La codifica. dell informazione

Codifica dell informazione numerica. Matteo Re, Nicola Basilico,

Lezione 2. Rappresentazione dell informazione

Conversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)

Codifica. Rappresentazione di numeri in memoria

Lezione 3. I numeri relativi

Unità aritmetica e logica

UD 1.2e: La codifica Digitale dei Numeri CODIFICA DIGITALE DEI NUMERI

Modulo 1: Le I.C.T. UD 1.2e: La codifica Digitale dei Numeri

La rappresentazione dei dati

Rappresentazione dei numeri. Rappresentazione di insiemi numerici mediante insiemi finiti di stringhe di bit Problemi:

Rappresentazione dei Numeri

Numeri con segno ed in virgola

Codifica dell informazione numerica

La codifica binaria. Sommario

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Elementi di Informatica e Programmazione

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Rappresentazione numeri relativi e reali

Esercitazione n. 5. Rappresentazione dei numeri

Aritmetica dei Calcolatori Elettronici

Lezione 1. Rappresentazione dei numeri. Aritmetica dei calcolatori. Rappresentazione dei numeri naturali in base 2

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

04 Aritmetica del calcolatore

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Lezione 2. Rappresentazione dell informazione

Fondamenti di Informatica - 1. Esercizi A.A. 2011/2012

Rappresentazione. Notazione in complemento a 2. Complemento a due su 3 e 4 bit Complemento a due

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Sistemi di Numerazione Binaria

Esercitazione Informatica I (Parte 1) AA Nicola Paoletti

Sistemi di Numerazione Binaria a i b i. a m a m-1... a 0. a -1 a a -k

Numerazione Simbolica

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Sistemi di Numerazione Binaria

Interi positivi e negativi

1.2 Concetti base dell Informatica: Informazione

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Sistemi di Numerazione Binaria

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Parte III Indice. Rappresentazione dei valori frazionari. Esercizi. in virgola fissa in virgola mobile III.1. Fondamenti di Informatica

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Rappresentazioni numeriche

Codifica dell informazione numerica

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Roberto Navigli

Interi unsigned in base 2. Esercitazioni su rappresentazione dei numeri e aritmetica. Conversione binario-decimale

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Informazione binaria: - rappresentazione dei numeri razionali -

Rappresentazione dell informazione

1-Rappresentazione dell informazione

Operazioni artimetiche

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 10 Novembre 2015

La codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per

I.4 Rappresentazione dell informazione

La codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Aritmetica dei Calcolatori - Operazioni

Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari Russo ing. Saverio

Rappresentazione numeri reali

I.4 Rappresentazione dell informazione - Numeri con segno

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Rappresentazione binaria

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 14 Novembre 2014

Sistemi di numerazione

RAPPRESENTAZIONE DEI NUMERI IN UN CALCOLATORE

Informatica Generale 02 - Rappresentazione numeri razionali

Rappresentazione binaria

Rappresentazione dell Informazione

Numeri frazionari nel sistema binario

Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico

La codifica. dell informazione

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Rappresentazione dei numeri reali

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Lezione 2. Rappresentazione dell informazione

Rappresentazione in virgola mobile Barbara Masucci

ESERCITAZIONE. Uso dell accessorio calcolatrice per

Richiami sulla rappresentazione dei numeri

Firmware Division & Floating pointer adder

Rappresentazione dei numeri reali in un calcolatore

I sistemi di numerazione e la numerazione binaria

Laboratorio di Informatica

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Transcript:

Esercitazione del 05/03/2009 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 0) a. 0 2? 0 2 Base 2 La posizione della cifra all interno del numero indica il peso della cifra stessa, cioè il moltiplicatore da usare per calcolarne il valore. Si cominciano a contare le posizioni da destra a partire da 0. La posizione indica quale esponente usare. Pos.3 Pos.2 Pos. Pos.0 IN PRATICA: Nel caso binario la conversione si ottiene sommando le potenze di 2 per cui la corrispondente cifra binaria è uguale ad 2 3 + 2 2 + 0 2 + 2 0 = 8 + 4 + 0 + = 3 0 CONSIGLIO: Studiate a memoria l inizio della sequenza di potenze di due:, 2, 4, 8, 6, 32, 64 28, 254, b. 0000 2 = 2 7 + 2 6 + 0 2 5 + 0 2 4 + 0 2 3 + 2 2 + 0 2 + 2 0 = 28 + 64 + 4 + = 97 0 c. 2 = 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 + 2 0 = 64 + 32 + 6 + 8 + 4 +2 + = 27 0 d. 000000 2 = 2 7 + 0 2 6 + 0 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 0 2 + 2 0 = 28 + = 29 0

2. Conversione decimale binario ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 2) a. 83 0? 2 ) Si identifica la base di arrivo, in questo caso 2, e la si usa come divisore 2) Il risultato della divisione intera diventa il quoziente per la divisione successiva 83 / 2 = 4 resto 4 / 2 = 20 resto 20 / 2 = 0 resto 0 0 / 2 = 5 resto 0 5 / 2 = 2 resto IN PRATICA: nel caso di divisioni per 2, il resto è uguale a 0 se il quoziente è pari ed a se dispari CONSIGLIO: Alla fine dei conti verificate la corrispondenza: quoziente pari resto 0 quoziente dispari resto 3) L algoritmo termina quando il risultato della divisione è uguale a 0 2 / 2 = resto 0 = 000 2 4) Per ottenere il risultato si leggono i resti dal basso verso l alto. b. 369 0? 2 369 / 2 = 84 resto 84 / 2 = 92 resto 0 92 / 2 = 46 resto 0 46 / 2 = 23 resto 0 23 / 2 = resto / 2 = 5 resto 5 / 2 = 2 resto 2 / 2 = resto 0 369 0 = 0000 2 c. 2570 0? 2 2570 / 2 = 285 resto 0 285 / 2 = 642 resto 642 / 2 = 32 resto 0 32 / 2 = 60 resto 60 / 2 = 80 resto 0 80 / 2 = 40 resto 0 40 / 2 = 20 resto 0 20 / 2 = 0 resto 0 0 / 2 = 5 resto 0 5 / 2 = 2 resto 2 / 2 = resto 0 2570 0 = 00000000 2 d. 8460 0? 2 8460 / 2 = 4230 resto 0 4230 / 2 = 25 resto 0 25 / 2 = 057 resto 057 / 2 = 528 resto 528 / 2 = 264 resto 0 264 / 2 = 32 resto 0 32 / 2 = 66 resto 0 66 / 2 = 33 resto 0 33 / 2 = 6 resto 6 / 2 = 8 resto 0 8 / 2 = 4 resto 0 4 / 2 = 2 resto 0 2 / 2 = resto 0 8460 0 = 0000000000 2

3. Conversione binario esadecimale ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 8) a. 00 2? 6.. 2 000 3 5 35 6 = 0x35 ) Si raggruppano le cifre binarie a gruppi di quattro partendo da destra. Se mancano cifre nell ultimo gruppo si aggiungono degli zeri (leading) 2) Si traduce ogni gruppo nella corrispondente cifra esadecimale. 3) Si riassembla il risultato b. 000 2 = 000 2 00 2 = 0x2 0x9 = 0x29 CONSIGLIO:Poiché le possibili combinazioni (6) sono poche, conviene imparare a memoria una tabella lookup per la conversione Tabella lookup 0000 0 000 8 000 00 9 000 2 00 A 00 3 0 B 000 4 00 C 00 5 0 D 00 6 0 E 0 7 F c. 000000 2 = 00 2 2 0000 2 = 0xA 0xF 0x0 = 0xAF0 d. 000000 2 = 00 2 000 2 00 2 = 0x5 0x 0xA = 0x5A 4. Conversione esadecimale binario ( Rappresentazione dell Informazione Conversione da base 0 a base n, slide 7) a. 0x5C? 2 0 x 5 C 00 2 00 = 000 2 ) Si traduce ogni cifra esadecimale nel corrispondente gruppo di cifre binarie. 3) Si riassembla il risultato. Se sono presenti zeri iniziali si possono eliminare. b. 0xA7 = 0xA 0x7 0x = 00 2 0 2 000 2 = 000000 2 c. 0x93 = 0x 0x9 0x3 = 000 2 00 2 00 2 = 0000 2 d. 0x7004 = 0x7 0x0 0x0 0x4 = 0 2 0000 2 0000 2 000 2 = 00000000000 2

5. Somme binarie ( Rappresentazione dell Informazione Operazioni elementari su numeri binari..., slide 20) a. 000 2 + 0 2 =? 2 000 2 + 0 2 = 000 2 Riporti R 0 + = La somma binaria si esegue esattamente come quella decimale classica. Si allineano a destra i numeri da sommare quindi si procede sommando ogni coppia di bit e l eventuale riporto, da destra verso sinistra. Gli eventuali riporti si sommano sulla coppia di bit successiva a sinista In base 2, occorre ricordarsi che: + = 0 riporto + + = riporto b. 0 2 + 00000 2 = 00000 2 CONSIGLIO: verificate sempre i risultati traducendo i numeri binari in decimale e rifacendo i calcoli in questa base R + 0 0 = 0 c. 0 2 + 00 2 = 0000 2 R + = d. 000 2 + 00000 2 = 0000 2 R 0 + 0 0 0 =

6. Sottrazioni binarie (in complemento a due) ( Rappresentazione dell Informazione Operazioni elementari su numeri binari..., slide 2-23) a. 00 2 0 2 =? 2 COMPLEMENTO A DUE 00 2 0 2 0 00 2 0 00 2 Bit di segno Completamento 00 2 ) Estendo le cifre alla rappresentazione scelta se necessario 2) Calcolo il complemento a due del secondo termine invertendo i bit e sommando uno La sottrazione in complemento a due si esegue sommando al primo termine il complemento a due del secondo termine. Il complemento a due si calcola invertendo le cifre bit a bit e quindi sommando. I calcoli si eseguono sul numero di bit della rappresentazione richiesta, o, se non è data nessuna dimensione, sul numero di cifre del più grande dei due. Se uno dei due termini risulta più corto allora occorre estendere il segno fino alla lunghezza necessaria. S R 0 + 0 0 0 0 = + -0 2 in formato CA2 000 2 + 00 2 3) Sommo il primo termine con il complemento a due del secondo. Dato un numero in CA2 si può tornare alla notazione Modulo&Segno sottraendo e quindi invertendo bit a bit. R 0 0 + = 0 + + 2 IN PRATICA: per sottrarre in binario potete cercare il primo a destra, porlo a 0 e quindi porre a tutti gli 0 a sinistra dell trovato. Ex: 000 2 2 = 0 2 Il riporto oltre il bit di segno viene scartato Risultato: 00 2 0 2 = + 2 Può capitare che il risultato sia troppo grande, in modulo, per essere rappresentato dal numero di bit disponibili. In questo caso si dice che si è verificato un errore di OVERFLOW. Ex: Calcolare 3+3 usando 2 bit + segno 3 + 3 = 0 2 + 0 2 = 0 2 = -2 in CA2!! Ex: Calcolare -2-3 usando 2 bit + segno -2-3 = 0 2 + 0 2 = 00 2 = +!! La condizione di overflow si verifica controllando la coerenza tra segno dei termini sommati ed il risultato. Ex: + + + = - incoerente! Ex: - + - = + incoerente!

b. 2 00 2 =? 2 Uso quattro cifre più il bit di segno: 2 00 2 = 0 0 2 0 00 2 = 00 2 + ( 00 2 + ) Calcolo il CA2 di 00 2 : S R + 0 0 0 0 = -00 2 in CA2 Eseguo la somma tra il primo termine e il CA2 del secondo: S R 0 0 + = - 2 in CA2 (0-=00 000) Risultato: 2 00 2 = - 2 c. 0 2 00 2 =? 2 Uso cinque cifre più il bit di segno: 0 2 00 2 = 0 00 2 0 000 2 = 000 2 + ( 00 2 + ) Calcolo il CA2 di 00 2 : S R + 0 0 0 0 0 = -00 2 in CA2 Eseguo la somma tra il primo termine e il CA2 del secondo: R 0 + = +000 2 Risultato: 0 2 00 2 = +000 2

d. 0 2 000 2 =? 2 (Eseguire i calcoli a 8 bit) Uso sette cifre più il bit di segno: 0 2 000 2 = 0 00000 2 0 0000 2 = 000000 2 + ( 000 2 + 2 ) S R + 0 0 0 0 0 0 0 = 000 2 in CA2 Eseguo la somma tra il primo termine e il CA2 del secondo: S R 0 0 0 0 0 + = -0000 2 in CA2 (000-=00-0000) Risultato: 0 2 000 2 = -0000 2

Altri metodi per eseguire la sottrazione binaria (facoltativo) MODULO e SEGNO prendo ricorsivamente in prestito una decina binaria dalle cifre a sinistra in modo da eseguire la sottrazione 0 2-2 Prestiti S - - P - 0 = 0 0 0 La sottrazione in modulo e segno si esegue in maniera simile alla sottrazione per i numeri naturali. Si esegue la sottrazione bit a bit da destra verso sinistra, tenendo conto di eventuali prestiti dalle cifre a sinistra quando necessario. Il metodo non funziona se il risultato della sottrazione è negativo, cioè quando il primo termine è più piccolo del secondo. In questo caso occorre invertire i termini prima della sottrazione e aggiustare il segno alla fine del calcolo. Nota: qui il risultato è 0 perchè una unità del prestito dalla cifra a sinistra è stata passata alla cifra a destra. In base 2, occorre ricordarsi che: 0 - = - = con un prestito dalla cifra a sinistra. Se la cifra a sinistra è 0 allora occorre estendere il prestito verso sinistra fino a trovare un. COMPLEMENTO A UNO 00 2 0 2 000 2 000 2 000 2 + 00 2 Estendo le cifre se necessario Calcolo il complemento a uno del secondo termine invertendo i bit La sottrazione in complemento a uno si esegue sommando al primo termine il complemento a uno del secondo termine. Se il risultato è di segno concorde, occorre correggerlo sommando 2. I calcoli si eseguono sul numero di bit della rappresentazione richiesta, o, se non è data nessuna dimensione, sul numero di cifre del più grande dei due. Se uno dei due termini risulta più corto allora occorre estendere il segno fino alla lunghezza necessaria. S R 0 0 + 0 = 0 0 0 + 0 0 0 Sommo i due termini. Il risultato è positivo quindi lo correggo sommando uno

a. 0 2 0 2 =? 2 Modulo e Segno: il primo termine è più piccolo quindi inverto i termini, il risultato sarà di segno opposto a quello del primo termine, negativo. S - P - 0 = -0 2 in M&S Complemento a UNO: uso quattro cifre più il bit di segno. 0 2 0 2 = 000 2 00 2 = 00 2 + 000 2 S R 0 0 + 0 = 0-0 2 in CA Il risultato è di segno discorde rispetto al primo termine quindi non occorre correggerlo. b. 00 2 2 =? 2 Modulo e Segno: il primo termine è più grande quindi lascio i termini così ordinati, il risultato sarà dello stesso segno del primo termine, positivo. S - - P - 0 = 0 0 0 0 +00 2 Complemento a UNO: uso cinque cifre più il bit di segno. 00 2 2 = 000 2 0 2 = 000 2 + 0000 2 R 0 0 + 0 0 0 = 0 0 Il risultato è concorde quindi occorre correggerlo. S R 0 0 0 0 + 0 0 0 0 0 = 0 0 0 +00 2

c. 00 2 0 2 =? 2 Modulo e Segno: il primo termine è più piccolo quindi inverto i termini, il risultato sarà di segno opposto del primo termine, negativo. S - P - 0 0 = -0 2 in M&S Complemento a UNO: uso cinque cifre più il bit di segno. 00 2 0 2 = 0000 2 00 2 = 0000 2 + 0000 2 S R 0 0 0 + 0 0 = 0 0-0 2 in CA Il risultato è negativo quindi non occorre correggerlo. d. 00 2 0 2 =? 2 Modulo e Segno: il primo termine è negativo come il secondo. In questo caso si esegue la somma tra i moduli e si aggiusta il segno. Complemento a UNO: uso cinque cifre più il bit di segno. -00 2 00 2 = - 0000 2 000 2 = 00 2 + 000 2 R + 0 = -0 2 in CA Il risultato è di segno concorde quindi occorre correggerlo sommando. S R 0 0 + 0 0 0 0 0 = 0 0-00 2 in CA

7. Conversione in floating point secondo lo standard IEEE 754 ( Rappresentazione dell Informazione i numeri decimali, slide 27-32, Codifica IEEE754.., 34-38) a. -20,75 0 = <s,e,m>? Numero negativo: s = Converto 40 0 in base 2: 20 0 = 000 2 Per convertire in floating point occorre: calcolare il segno convertire la parte intera in binario ( ex: con il metodo delle divisioni per 2 successive) convertire la parte frazionaria in binario ( ex: con il metodo delle moltiplicazioni per 2 successive) unire i due risultati e normalizzare. calcolare la mantissa secondo la precisione voluta (occorre ricordarsi di scartare il primo della normalizzazione) calcolare l esponente della normalizzazione polarizzato e convertirlo in binario secondo la precisione voluta 20 / 2 = 0 resto 0 0 / 2 = 5 resto 0 5 / 2 = 2 resto 2 / 2 = resto 0 Converto 0,5 0 in base 2: 0,75 0 = 0, 2 La conversione della parte frazionaria per moltiplicazioni 2 successive si esegue nel seguente modo: si moltiplica per 2 la parte frazionaria. La parte intera del risultato costituisce il primo bit della parte frazionaria espressa in binario. Si ripete il passo precedente sulla parte frazionaria del risultato. La parte intera del risultato costituirà adesso il secondo bit della parte frazionaria espressa in binario. Si ripete il procedimento ricavando i successivi bit fino a che la parte frazionaria risulta uguale a zero (tutti i bit successivi saranno a zero) oppure si è raggiunta la precisione voluta (es. si sono ricavati già i 23 bit necessari per una mantissa in precisione singola). 0,75 * 2 =,5 parte intera 0,5 * 2 =,0 parte intera ####### Leggo i bit dall alto verso il basso. Il bit più vicino alla virgola è il primo bit trovato. La parte frazionaria è uguale a zero. Il metodo termina. Unisco i risultati: 20,75 0 = 000, 2 Normalizzo: 000, 2 =,000 2 (0 2 ) 4 Mantissa a 23 bits:,000 2 m = 0000000 0000000000 000 Polarizzo l esponente: 4 0 + 27 0 = 3 0 = 28 0 + 2 0 + 0 = 00000 2 Esponente a 8 bits: 00000 2 e = 00000-20,75 0 = <, 00000, 00000000000000000000>

b. -0,375 0 = <s,m,e>? Numero positivo: s = Converto 0 0 in base 2: 0 0 = 0 2 Converto,25 0 in base 2: 0,375 0 = 0,0 2 0,375 * 2 = 0,75 parte intera 0 0,75 * 2 =,5 parte intera 0,5 * 2 =,0 parte intera ######### Unisco i risultati: 0,375 0 = 0,0 2 Normalizzo: 0,0 2 =, 2 (0 2 ) -2 (shift a sinistra di 2 posizioni: exp= -2 ) Mantissa a 23 bit:, 2 m = 000000000 0000000000 000 Polarizzo l esponente: -2 0 + 27 0 = 25 0 = 0 2 25 / 2 = 62 resto 62 / 2 = 3 resto 0 3 / 2 = 5 resto 5 / 2 = 7 resto 7 / 2 = 3 resto 3 / 2 = resto Esponente a 8 bits: 0 2 e = 00-0,375 0 = <, 00, 0000000000000000000000>

c. -9 0 = <s,m,e>? Numero negativo: s = Converto 5 0 in base 2: 9 0 = 00 2 9 / 2 = 4 resto 4 / 2 = 2 resto 0 2 / 2 = resto 0 Converto,0 0 in base 2: 0,0 0 = 0,0 2 Unisco i risultati: 9,0 0 = 00,0 2 Normalizzo: 00,0 2 =,00 2 (0 2 ) 3 (shift a destra di 3 posizioni: exp= +3 ) Mantissa a 23 bit:,00 2 m = 000000000 0000000000 000 Polarizzo l esponente: 3 0 + 27 0 = 30 0 = 000000 2 30 / 2 = 65 resto 0 65 / 2 = 32 resto 32 / 2 = 6 resto 0 6 / 2 = 8 resto 0 8 / 2 = 4 resto 0 4 / 2 = 2 resto 0 2 / 2 = resto 0 Esponente a 8 bits: 000000 2 e = 000000-9 0 <, 000000, 000000000000000000000>

d. -0,3 0 = <s,m,e>? Numero negativo: s = Converto 0 0 in base 2: 0 0 = 0 2 Converto,3 0 in base 2: 0,3 0 = 0,0 2 0,3 * 2 = 0,6 parte intera 0 0,6 * 2 =,2 parte intera 0,2 * 2 = 0,4 parte intera 0 0,4 * 2 = 0,8 parte intera 0 0,8 * 2 =,6 parte intera 0,6 * ######## Da qui in poi si ripetono ciclicamente le cifre 00 Unisco i risultati: 0,3 0 = 0,0 00 2 Normalizzo: 0,0 00 2 = 0,0 00 00 2 =,00 00 2 (0 2 ) -2 Mantissa a 23 bit:, 00 00 00 00 00 00 00 m = 000000000000 Polarizzo l esponente: -2 0 + 27 0 = 25 0 = 0 2 25 / 2 = 62 resto 62 / 2 = 3 resto 0 3 / 2 = 5 resto 5 / 2 = 7 resto 7 / 2 = 3 resto 3 / 2 = resto Tronco la rappresentazione periodica della mantissa alla lunghezza fissa di 23 bit Esponente a 8 bits: 0 2 e = 00-0,3 0 = <, 00, 000000000000 > Alcune configurazioni con significato speciale (singola precisione): 0 <0,00000000,00000000000000000000000> +/- <[segno],,00000000000000000000000> NaN <[segno],, [mantissa 0]> N.ro denormalizzato <[segno],00000000, [mantissa denormalizzata 0]> (vedi di seguito) Alcuni casi notevoli (singola precisione): =,0 (0 2 ) 0 <0,0,00000000000000000000000> (E=0+27) MaxFloat =,.. x 2 +27 <0,0,> (E=+27+27) MinFloat =,0 x 2-26 <0,0000000,00000000000000000000000> (E=-26+27) MinFloatDeN = 0,0..0 x 2-26 <0,00000000,0000000000000000000000>

Problema dell approssimazione di numeri piccoli: il formato IEEE 754 denormalizzato. Il più piccolo numero positivo rappresentabile in formato IEEE 754 standard a precisione singola è (si ricordi che l esponente uguale a 0 è usato per indicare valori speciali come lo zero): <0,0000000,00000000000000000000000> =,0 2 2-26,7 * 0-38 Il più piccolo numero positivo successivo: <0,0000000,0000000000000000000000> =,00000000000000000000000 2 (2 0 ) -26 = 2-26 + 2-49,7 0-38 +,40 0-45 Ciò significa che usando il formato IEEE 754 standard, in prossimità dello zero avremo un cambiamento nella linearità della quantizzazione: da 0 al più piccolo successivo ci sarà un salto dell ordine di 0-38 mentre per passi successivi i salti saranno dell ordine di 0-45. 0 Il più piccolo numero positivo rappresentabile in formato IEEE 754 denormalizzato a precisione singola è (0.f 2-26 ): <0,00000000,0000000000000000000000> = 0,0000000000000000000000 2 2-26 = 2-49,40 * 0-45 Il più piccolo numero positivo successivo: <0,00000000,0000000000000000000000> = 0,00000000000000000000000 2 2-26 = 2 * 2-49 2,80 0-45 Usando il formato IEEE 754 denormalizzato, in prossimità dello zero la quantizzazione risulta lineare: da 0 al più piccolo successivo ci sarà un salto dell ordine di 0-45 così come per passi successivi. In aggiunta il salto tra 0 ed il primo positivo successivo risulta minore, e quindi migliore in termini di precisione ottenibile nei calcoli, rispetto al formato IEEE 754 standard. 0 0-39 0-45 0-45 Lo svantaggio maggiore del formato denormalizzato rispetto al formato standard è che richiede per l esecuzione dei calcoli aritmetici di algoritmi più complicati. Per saperne di più: http://stevehollasch.com/cgindex/coding/ieeefloat.html