Home

denormals

Denormals, also called subnormal numbers, are a class of floating-point numbers that occur in IEEE 754 formats when the exponent field is zero but the significand is nonzero. They lie between zero and the smallest normal positive value and enable gradual underflow, preserving information about very small magnitudes that would otherwise disappear when underflow occurs.

In a binary floating-point format, normal numbers have an implicit leading 1 in the significand, while subnormals

Denormals serve to represent very small magnitudes and maintain continuous scale near zero, but they come with

Denormal numbers occur in all IEEE 754 binary formats, including double precision and extended precisions, with

do
not.
For
subnormals,
the
exponent
is
set
to
zero
and
the
value
is
given
by
(-1)^sign
×
(0.fraction)
×
2^(1
−
bias).
In
IEEE
754
single
precision
(bias
127,
23
fraction
bits),
the
smallest
normal
positive
is
2^-126,
and
the
largest
subnormal
is
(1
−
2^-23)
×
2^-126.
The
smallest
positive
subnormal
is
2^-149.
Thus
there
is
a
gap
between
zero
and
the
smallest
normal,
bridged
by
subnormals.
trade-offs.
Precision
degrades
as
values
approach
zero,
and
arithmetic
with
subnormals
can
be
slower
on
some
hardware.
Many
implementations
provide
a
flush-to-zero
mode
or
allow
disabling
denormals
for
performance,
in
which
case
results
that
would
be
subnormal
are
rounded
to
zero.
analogous
definitions
and
values.
They
are
an
important
aspect
of
the
underflow
behavior
of
floating-point
systems
and
are
specified
to
ensure
a
smoother
transition
to
zero
in
numerical
computations.