La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

JAVA usa una rappresentazione in VIRGOLA MOBILE

Presentazioni simili


Presentazione sul tema: "JAVA usa una rappresentazione in VIRGOLA MOBILE"— Transcript della presentazione:

1 JAVA usa una rappresentazione in VIRGOLA MOBILE
TIPI DI DATI, 2a Parte Numeri Reali 2 tipi : - float (32 bit) - double (64 bit) La struttura di un numero reale (float o double) è data da 3 parti: - segno - mantissa - esponente JAVA usa una rappresentazione in VIRGOLA MOBILE standard definita nel documento IEEE754

2 IN GENERALE mantissa , 4 2 3 Posizione della virgola SEGNO - 4 cifre nella parte intera - 3 cifre nella parte frazionaria esponente QUINDI : - 8452,423 = X 10-3 (-, , -3) (-, , 4) = - 0, X 104

3 In specifico IEEE 754 si lavora in binario; introduciamo il concetto di BIAS; per determinare l'esponente spostiamo la virgola dopo la cifra più significativa, che è sempre un 1, quindi non ho bisogno di rappresentare !!! Il bit prima della cifra più significativa è riservato al segno;

4 Quanti bit per parte ? Float Double

5 Esempio: -75 → sommo il bias → 52
Come sono memorizzati i numeri ? Premessa, parliamo del BIAS Segno Esponente + bias Mantissa BIAS: Per FLOAT: 127 ( = = 27-1) Per DOUBLE: 1023 ( = = 210-1) Valori massimi rappresentabili con 7 e 10 bit Per comodità uso i numeri decimali, ma la rappresentazione della macchina rimane binaria SCOPO: Il BIAS permette di rappresentare ESPONENTI NEGATIVI con VALORI POSITIVI In altre parole traslo l'intervallo in cui è definito l'esponente: Esempio: → sommo il bias → 52

6 Quindi il IEEE754 i numeri reali sono memorizzati . . .
SEGNO NEGATIVO MANTISSA ESPONENTE + BIAS ESPONENTE: – BIAS = 110 - 1, x 2 110 questo 1 non era rappresentato

7 L'esponente assume il valore di tutti i bit a 0 solo per rappresentare 0,0 a condizione che anche segno e mantissa siano a 0: Segno: + Mantissa: 0 Esponente: -127

8 + somma - sottrazione * moltiplicazione / divisione
Operatori aritmetici: + somma - sottrazione * moltiplicazione / divisione N.B.: non c'è l'operazione di modulo

9 Conversioni implicite byte → short, int, long, float, double
Conversione tra interi e interi, tra interi e reali e tra reali e reali: Conversioni implicite byte → short, int, long, float, double short → int, long, float, double int → long, float, double long → float, double float → double . . . Int a; Long b; b=a;

10 Conversioni esplicite
. . . long A; int B; A = 5483; B = (int)A; Conversioni esplicite (pericolose – si possono ottenere risultati indesiderati) int → byte, short short → byte long → byte, short, int float → byte, short, int, long, char Double → byte, short, int, long, char, float CAST !!


Scaricare ppt "JAVA usa una rappresentazione in VIRGOLA MOBILE"

Presentazioni simili


Annunci Google