Formato del tipo di dati REAL (numeri in virgola mobile)

Formato del tipo di dati REAL (numeri in virgola mobile)
Pagina 1 di 3
Formato del tipo di dati REAL (numeri in virgola mobile)
I numeri in virgola mobile vengono rappresentati nella forma generica "numero = m ∗ b elevato a E" . La
base ”b” e l'esponente ”E” sono numeri interi, mentre la mantissa ”m” è un numero razionale.
Questa rappresentazione numerica presenta il vantaggio di poter rappresentare in uno spazio limitato valori
molto grandi e valori molto piccoli. Il numero limitato di bit per la mantissa e per l'esponente consente di
coprire un ampio campo numerico.
Lo svantaggio è rappresentato dalla limitata precisione di calcolo: per esempio nel fare la somma di due
numeri gli esponenti devono essere allineati spostando (virgola decimale mobile) la mantissa (addizione
delle mantisse di due numeri con lo stesso esponente).
Formato in virgola mobile in STEP 7
I numeri in virgola mobile in STEP 7 corrispondono al formato di base di larghezza semplice, come
descritto nella norma ANSI/IEEE Standard 754–1985, IEEE Standard for Binary Floating-Point Arithmetic.
Essi sono costituiti dai componenti seguenti :
l
il segno V
l
l'esponente aumentato di una costante e = E + bias (bias = +127)
l
la parte frazionaria della mantissa m.
La parte numerica intera della mantissa non viene memorizzata poiché è sempre = 1 all'interno del
campo numerico valido
I tre componenti occupano insieme una doppia parola (32 bit):
La tabella seguente mostra la valenza dei singoli bit nel formato in virgola mobile .
Componente del numero in virgola mobile
Segno V
Numero bit
31
Valenza
Esponente e
...
Esponente e
Esponente e
Mantissa m
...
Mantissa m
Mantissa m
30
...
24
23
22
...
1
0
2 elevato a 7
...
2 elevato a 1
2 elevato a 0
2 elevato –1
...
2 elevato a –22
2 elevato a –23
Con i tre componenti V, e e m il valore di un numero rappresentato in questo formato è definito dalla
formula:
Numero = 1.m ∗ 2 elevato a (e-bias)
Dove:
l
e: 1
e
254
l
Bias: bias = 127. Viene così a mancare un segno extra per l'esponente .
l
V: V = 0 per un numero positivo e V = 1 per un numero negativo.
mk:@MSITStore:C:\programmi\siemens\step7\S7bin\s7bashdE.chm::/BAS00599.htm
05/07/2003
Formato del tipo di dati REAL (numeri in virgola mobile)
Pagina 2 di 3
Campo numerico dei numeri in virgola mobile
In base al formato in virgola mobile rappresentato in alto si ottengono
l
l
Il numero minimo in virgola mobile = 1.0 ∗ 2 elevato a (1-127) = 1.0 ∗ 2 elevato a (-126)
= 1.175 495E–38 e
Il numero massimo in virgola mobile = 2-2 elevato a (-23) ∗ 2 elevato a (254-127) = 2-2 elevato a (-23) ∗
2 elevato a (+127)
= 3.402 823E+38
Il numero zero viene rappresentato con e = m = 0 ; e = 255 e m = 0 sta per ”infinito”.
Formato
Numeri in virgola mobile secondo la norma ANSI/IEEE
Campo1)
–da 3.402 823E+38 a –1.175 495E–38
e"0e
da +1.175 495E–38 a +3.402 823E+38
La tabella seguente mostra lo stato di segnale dei bit nella parola di stato per i risultati delle operazioni con
numeri in virgola mobile che non sono compresi nel campo valido .
Campo non valido per un risultato
A1 A0 OV OS
-1.175494E-38 < risultato < -1.401298E-45 (numero negativo)
valore inferiore
+1.401298E-45 < risultato < +1.175494E-38 (numero positivo)
valore inferiore
Risultato < -3.402823E+38 (numero negativo) overflow
Risultato > 3.402823E+38 (numero positivo) overflow
Nessun numero in virgola mobile valido oppure operazione non ammessa (valore di
ingresso fuori del campo numerico valido)
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
Attenzione nelle operazioni matematiche :
Il risultato "Nessun numero in virgola mobile valido" si ottiene per esempio tentando di estrarre la radice
quadrata di –2 . Nelle operazioni matematiche pertanto valutare sempre i bit di stato prima di continuare a
calcolare con il risultato.
Attenzione nel "Comando delle variabili":
Se vengono memorizzati i valori per le operazioni in virgola mobile, p.es. nelle doppie parole di merker ,
questi valori possono essere modificati con configurazioni di bit a piacere. Tuttavia non ogni configurazione
di bit è un numero valido !
Precisione di calcolo con numeri in virgola mobile ,
Attenzione
In caso di calcoli complessi con numeri di grandezze molto differenti (diverse potenze alla
decima) si possono verificare inesattezze nel risultato del calcolo.
I numeri in virgola mobile in STEP 7 sono esatti fino al 6° decimale. Nell'introdurre costanti a virgola mobile
è pertanto possibile digitare solo max. 6 posizioni decimali.
Avvertenza
La precisione di calcolo di 6 decimali significa p.es. che l'addizione di numero1 + numero2 = dà come
somma numero1, quando numero1 è maggiore di numero2 ∗ 10 elevato a y, con y 6:
100 000 000 + 1 = 100 000 000.
Esempi di numeri in formato a virgola mobile
La figura seguente riporta il formato di numeri in virgola mobile per i seguenti valori decimali:
l
10,0
mk:@MSITStore:C:\programmi\siemens\step7\S7bin\s7bashdE.chm::/BAS00599.htm
05/07/2003
Formato del tipo di dati REAL (numeri in virgola mobile)
l
p (3,141593)
l
radice quadrata di 2 (2 = 1,414214)
Pagina 3 di 3
Il numero 10.0 nel primo esempio è il risultato del formato in virgola mobile seguente (rappresentazione
esadecimale: 4120 0000) :
e = 2 elevato a 1 + 2 elevato a 7 = 2 + 128 = 130
m = 2 elevato a (-2) = 0,25
Così risulta: 1.m ∗ 2 elevato a (e – bias) = 1.25 ∗ 2 elevato a (130 – 127) = 1.25 ∗ 2 elevato a 3 = 10.0.
mk:@MSITStore:C:\programmi\siemens\step7\S7bin\s7bashdE.chm::/BAS00599.htm
05/07/2003