For example, for a Real48 value, e is stored in the first byte,
f in the following five bytes, and
s in the most significant
bit of the last byte.
The Real48 type
The following discussion of the Real48 type applies only to the Win32 platform. The Real48
type is not supported
on the .NET platform.
On the Win32 platform, a 6-byte (48-bit) Real48 number is divided into three fields:
1 39 8
s f
e
If 0 <
e <= 255, the value
v of
the number is given by
v = (1)^s * 2^(e129) * (1.f)
If e = 0, then v = 0.
The Real48 type can't store denormals, NaNs, and infinities. Denormals become zero when stored in a Real48, while
NaNs and infinities produce an overflow error if an attempt is made to store them in a Real48.
The Single type
A 4-byte (32-bit) Single number
is divided into three fields
1 8 23
s e f
The value
v of the number is given by
if 0 < e < 255, then v = (1)^s * 2^(e127) * (1.f)
if e = 0 and f <> 0, then v = (1)^s * 2^(126) * (0.f)
if e = 0 and f = 0, then v = (1)^s * 0
if e = 255 and f = 0, then v = (1)^s * Inf
if e = 255 and f <> 0,
then v is a NaN
The Double type
An 8-byte (64-bit) Double number is divided into three fields
1 11 52
s e
f
The value
v of the number is given by
if 0 < e < 2047, then v = (1)^s * 2^(e1023) * (1.f)
if e = 0 and f <> 0, then v = (1)^s * 2^(1022) * (0.f)
if e = 0 and f = 0, then v = (1)^s * 0
if e = 2047 and f = 0, then v = (1)^s * Inf
if e = 2047 and f <> 0, then v is a NaN
208