Fixed-Point vs Floating-Point: Key Differences Explained

Fixed-point fixes the position of the binary point in advance and handles fractions with the same bit strings and arithmetic units as integers. Its circuits are small and use little power, so it is used in DSPs, in microcontrollers without floating-point units, and in the integer arithmetic of AI inference. Floating-point represents a number with a sign, an exponent and a mantissa, and the exponent moves the binary point, so it can handle values over an extremely wide range with nearly constant relative precision. Its arithmetic units are larger, but because it can be used without worrying about scaling, it is the standard for general-purpose computing and AI training.

AspectFixed-pointFloating-point
RepresentationAn integer bit string read with a predetermined scale (2 to the power −n). Written in forms such as Q15Three fields, sign, exponent and mantissa, expressed as (−1)^sign × 1.mantissa × 2^(exponent − bias). Defined by IEEE 754
Representable range (example)Q15 (16 bits): −1 to 1 − 2⁻¹⁵Single precision (32 bits): roughly 10⁻³⁸ to 10³⁸, and closer to 0 with subnormal numbers
PrecisionConstant step size (constant absolute error). The smaller the value, the larger the relative errorNearly constant relative precision (about 7 digits in single precision). The larger the value, the larger the step
Arithmetic unitInteger adders and multipliers as they areNeeds circuits for exponent comparison, mantissa alignment, normalization and rounding
Circuit size and powerSmall. Much less than floating-point at the same bit widthLarge. Often several times or more the area and energy of an integer unit of the same bit width
Overflow handlingIn two's complement, the value wraps around to the opposite end. Prevented with saturating arithmetic or accumulators with extra bits (guard bits)Exceeding the largest representable value gives ±infinity. Results such as 0 ÷ 0 give NaN
ScalingThe programmer estimates value ranges and designs the shifts and binary-point positions for each operationThe exponent adjusts automatically, so it rarely needs attention
Reproducibility of resultsResults tend to be bit-for-bit identicalThe order of additions can change results slightly (addition is not associative)
Where it is usedDSPs, small microcontrollers without floating-point units, signal processing in FPGAs and ASICs, integer arithmetic for AI inference (such as INT8)General-purpose computing in PCs and servers, scientific computing (double precision), graphics, AI training (FP32, BF16, FP16, FP8)

Figures are typical orders of magnitude and vary by process generation and product.

When to use which

Fixed-point
When you want to do signal processing whose value range is known in advance with small circuits and low power. Audio and communications filters, motor control, FPGA implementations, and inference of quantized AI models.
Floating-point
Calculations whose value range is wide or not known in advance. When you want to prioritize ease of development and numerical stability, as in scientific computing, physics simulation, graphics and AI training.
Combined
In AI, it is now common to train in floating-point and, for inference, quantize to scaled integers (such as INT8) and compute with integer arithmetic units similar to those used for fixed-point.

FAQ

Why are fixed-point circuits small?

Because the binary point is in a fixed position, integer adders and multipliers can be used as they are. Floating-point needs circuits that compare exponents and align the mantissas on every addition, then normalize and round the result, which increases area and power.

What happens when a fixed-point value overflows?

As with two's-complement integers, exceeding the maximum wraps around to the minimum side, causing large errors such as a large positive value becoming negative. DSPs prevent this with saturating arithmetic, which holds the result at the maximum or minimum, and with wide accumulators that have guard bits.

Does floating-point have no error?

No. Floating-point also uses a finite number of bits, so values that cannot be represented exactly in binary, such as 0.1, have rounding errors, and cancellation and absorption (loss of small addends) also occur. Its advantages are a wide representable range and nearly constant relative precision.

Is INT8 in AI inference fixed-point?

The idea is similar. Floating-point values are divided by a scale to make INT8 integers, integer multiply-accumulate operations are performed, and finally the scale is multiplied back in. The difference from fixed-point is that the scale is not limited to powers of 2 and can be set per layer or per channel.

Check your understanding

Why is fixed-point rather than floating-point arithmetic often used in small microcontrollers and DSPs?

  1. AIt can be computed with integer circuits, which are smaller and use less power
  2. BFixed point always represents a wider range than floating point
  3. CFixed point never produces rounding error
Show answer and explanation

Answer: A. It can be computed with integer circuits, which are smaller and use less power

Fixed point merely agrees on a binary-point position; the contents are integers, so addition and multiplication use integer circuits. Without the exponent-alignment and normalization logic of floating-point units, chip area and power stay low, which suits low-cost microcontrollers and signal-processing DSPs. The price is a narrow range, requiring careful design against overflow and insufficient precision. Floating point has the wider range, and fixed point still incurs rounding error.

Which gives the resolution and range of the 16-bit signed fixed-point Q15 format (15 fraction bits)?

  1. AResolution 2⁻¹⁶, range 0 to 1
  2. BResolution 2⁻¹⁵, range −1 to 1 − 2⁻¹⁵
  3. CResolution 2⁻¹⁵, range −32768 to 32767
Show answer and explanation

Answer: B. Resolution 2⁻¹⁵, range −1 to 1 − 2⁻¹⁵

Q15 uses 1 of 16 bits for sign and 15 for the fraction, representing the integer reading divided by 2¹⁵ = 32768. Dividing the integer range −32768 to 32767 by 32768 gives −1 to 32767/32768 = 1 − 2⁻¹⁵, with resolution 1/32768 = 2⁻¹⁵ ≈ 3.05 × 10⁻⁵. Note that exactly +1 cannot be represented. −32768 to 32767 is the range when read as an integer, ignoring the binary point. Q15 is common in audio and other signal processing.

When two fixed-point numbers with 8 fraction bits are multiplied using an integer multiplier, how should the result be handled?

  1. AThe result is already in the 8-fraction-bit format, so nothing needs to be done
  2. BThe result has 4 fraction bits, so shift it left by 4
  3. CThe result has 16 fraction bits, so shift it right by 8 to return to the original format
Show answer and explanation

Answer: C. The result has 16 fraction bits, so shift it right by 8 to return to the original format

A number with 8 fraction bits is stored as an integer equal to the real value times 2⁸. Multiplying two gives a value scaled by 2⁸ × 2⁸ = 2¹⁶, so the result has 16 fraction bits. Returning to the 8-fraction-bit format means dividing by 2⁸, that is, shifting right by 8 and rounding if needed. Products have more bits, so intermediate results are normally kept in a wider format. Addition leaves the fraction width unchanged, but multiplication adds the widths.

  1. How are the bits of an IEEE 754 single-precision (32-bit) number allocated among sign, exponent and significand?
  2. What is the main reason bfloat16 is used for AI training?
  3. In AI inference, what is the main benefit of converting (quantizing) weights from FP32 to INT8?

Practice Computer Arithmetic questions

Key terms explained

Fixed point
Representing fractions with ordinary integer bit patterns and an agreed binary-point position. Integer arithmetic circuits suffice, giving small, low-power hardware, but the range is narrow. Formats are often named by fraction bits, as in Q15.
IEEE 754
The international standard defining floating-point formats and arithmetic, including single (32-bit) and double (64-bit) precision, rounding, and special values such as infinity and NaN, so results agree across computers.
Saturating arithmetic
Arithmetic that clamps results exceeding the representable range to the maximum or minimum instead of wrapping around. Used in audio and image signal processing to avoid large errors.
bfloat16
A 16-bit floating-point format with 1 sign, 8 exponent and 7 significand bits. Sharing FP32's exponent width gives it a wide range, so despite low precision it is used for AI training. FP16, with 5 exponent and 10 significand bits, is more precise but has a narrow range.
INT8
An 8-bit signed integer (−128 to 127). In AI inference, quantizing weights and activations to INT8 with a scale factor greatly cuts computation and memory and allows fast processing on small integer circuits.

Related comparisons