Programmazione in C Sistemi numerici: numeri in virgola mobile Sistemi numerici: numeri in virgola mobile Esercizi proposti 1 Esercizio Siano dati i seguenti numeri decimali: 1. −21.062510 2. +1025.510 3. 010 Convertirli in virgola mobile su 32 bit, secondo lo standard IEEE 754 (1 bit di segno, 8 bit di esponente in eccesso 127, 23 bit di mantissa in forma normalizzata con hidden bit). 2 Esercizio Siano dati i seguenti numeri rappresentati in virgola mobile secondo lo standard IEEE 754: 1. BF 00000016 2. C359200016 3. 4000000016 Se ne stabilisca il valore nella base dieci. 3 Esercizio Si supponga che una notazione in virgola mobile abbia il seguente formato: • 1 bit di segno definito come nella notazione IEEE 754 • 3 bit di esponente in complemento a due • 4 bit di mantissa in forma normalizzata con bit nascosto. Si determini l’intervallo dei numeri rappresentabili, ovvero il valore minore e quello maggiore rappresentabili nei domini dei numeri negativi e positivi. c 2006 Politecnico di Torino 1 Programmazione in C 4 Sistemi numerici: numeri in virgola mobile Esercizio Si supponga che una notazione in virgola mobile abbia il seguente formato: • 1 bit di segno • E bit di esponente in modulo e segno • M bit di mantissa in forma normalizzata con bit nascosto. Si voglia rappresentare in tale formato il numero 153.310 con precisione pari a 1/20. Si determini il numero minimo di bit da assegnare all’esponente e alla mantissa. Si rappresenti quindi il numero in tale formato. 5 Esercizio Si abbiano due rappresentazioni a 32 bit: la rappresentazione IEEE 754 e una rappresentazione a virgola fissa nella quale sia possibile stabilire il numero di cifre dedicate alla parte frazionaria del numero. Supponendo di rappresentare solo numeri positivi, si confrontino le due rappresentazioni in termini di intervallo rappresentabile e di precisione ottenibile. Esistono dei valori per i quali la rappresentazione IEEE 754 permette una precisione più elevata della rappresentazione a virgola fissa? Si motivi la risposta. c 2006 Politecnico di Torino 2