Datasheet
Floating-point Support
5-32 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0067D
Sample values
Some sample
float
and
double
bit patterns, together with their mathematical values, are
given in Table 5-12 and Table 5-13 on page 5-33.
Table 5-12 Sample single-precision floating-point values
Float value S Exp Frac Mathematical value Notes
0x3F800000 0 0x7F 000...000 1.0
-
0xBF800000 1 0x7F 000...000 -1.0
-
0x3F800001 0 0x7F 000...001 1.000 000 119
a
0x3F400000 0 0x7E 100...000 0.75
-
0x00800000 0 0x01 000...000 1.18*10
-38
b
0x00000001 0 0x00 000...001 1.40*10
-45
c
0x7F7FFFFF 0 0xFE 111...111 3.40*10
38
d
0x7F800000 0 0xFF 000...000
Plus infinity -
0xFF800000 1 0xFF 000...000
Minus infinity -
0x00000000 0 0x00 000...000 0.0
e
0x7F800001 0 0xFF 000...001
Signalling NaN
f
0x7FC00000 0 0xFF 100...000
Quiet NaN
f
a. The smallest representable number that can be seen to be greater than 1.0. The amount that it differs from 1.0 is known as the
machine epsilon. This is 0.000 000 119 in
float
, and 0.000 000 000 000 000 222 in
double
. The machine epsilon gives a rough
idea of the number of decimal places the format can keep track of.
float
can do six or seven places.
double
can do fifteen or
sixteen.
b. The smallest value that can be represented as a normalized number in each format. Numbers smaller than this can be stored
as denormals, but are not held with as much precision.
c. The smallest positive number that can be distinguished from zero. This is the absolute lower limit of the format.
d. The largest finite number that can be stored. Attempting to increase this number by addition or multiplication causes overflow
and generates infinity (in general).
e. Zero. Strictly speaking, they show plus zero. Zero with a sign bit of 1, minus zero, is treated differently by some operations,
although the comparison operations (for example
==
and
!=
) report that the two types of zero are equal.
f. There are two types of NaNs, signalling NaNs and quiet NaNs. Quiet NaNs have a 1 in the first bit of Frac, and signalling
NaNs have a zero there. The difference is that signalling NaNs cause an exception (see Exceptions on page 5-35) when used,
whereas quiet NaNs do not.