Fractional vs. Integer Representation
8 - 12 C2000 Microcontroller Workshop - Numerical Concepts
Fractional vs. Integer Representation
Integer vs. Fractions
Integers grow when you multiply them
Fractions have limited range
Fractions can still grow when you add them
Scaling an application is time consuming
Range Precision
Integer determined 1
by # of bits
Fraction ~+1 to -1 determined
by # of bits
Are there any other alternatives?
The C28x accumulator, a 32-bit register, adds extra range to integer calculations, but this
becomes a problem in storing the results back to 16-bit memory.
Conversely, when using fractions, the extra accumulator bits increase precision, which helps
minimize accumulative errors. Since any number is accurate (at best) to ± one-half of a LSB,
summing two of these values together would yield a worst case result of 1 LSB error. Four
summations produce two LSBs of error. By 256 summations, eight LSBs are “noisy.” Since the
accumulator holds 32 bits of information, and fractional results are stored from the high
accumulator, the extra range of the accumulator is a major benefit in noise reduction for long
sum-of-products type calculations.