Fixed-point arithmetic
:This article is about fixed-point arithmetic in computing. For mathematical fixed points, see fixed point (mathematics).
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
In computing, a fixed-point number representation is a real data type for a number that has a fixed number of digits after the decimal (or binary or hexadecimal) point.
Related Topics:
Computing - Real data type
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
For example, a fixed-point number with 4 digits after the decimal point could be used to store numbers such as 1.3467, 281243.3234 and 0.1000, but would round 1.0301789 to 1.0302 and 0.0000654 to 0.0001.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Fixed-point can exactly represent decimal fractions while still employing the base 2 arithmetic that is
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
efficient in most of today's computers.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Most floating point representations in computers use base 2 values, which cannot exactly represent
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
most fractions that are easily represented in base 10.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
For example, one-tenth (.1) and one-hundredth (.01) can be represented only approximately
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
by base-2 floating point representations, while they can be represented exactly in fixed-point representations — one simply stores the data values multiplied by the appropriate power of 10.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
As long as the numeric value uses only the number of digits specified after the
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
decimal point, fixed-point values
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
can exactly represent all values up to its maximum value (determined by the number of bits
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
in its representation).
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
This is in contrast to floating-point representations, which include
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
an automatically-managed exponent but cannot represent as many digits accurately (given the
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
same number of bits in its representation).
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
A common use for fixed-point numbers is for storing monetary values, where the inexact values
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
of floating-point numbers are often a liability.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Fixed-point representations are also sometimes used if either the executing processor does not have any floating point unit (FPU) or if fixed-point provides an
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
improved performance necessary for an application. Historically,
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
fixed-point representations were the norm for decimal data types (for example, in PL/I or COBOL).
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
The Ada programming language includes built-in support
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
for both fixed-point and floating-point.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Very few computer languages include built-in support for fixed point values, because for most applications, floating-point representations are fast enough and accurate enough. Floating-point representations are more flexible than fixed-point representations, because they can handle a wider dynamic range.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Floating-point representations are also slightly easier to use, because they do not require programmers to specify the number of digits after the decimal point.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
However, if they are needed, fixed-point numbers can be implemented even
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
in programming languages like
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
C and
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
C++ that do not include such support built-in.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Here are some examples of fixed-point representations still in common use:
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
- GnuCash is an application for tracking money. It is written in C and switched from a floating-point representation of money to a fixed-point implementation as of version 1.6. This change was made to avoid the potential rounding errors of floating-point representations.
- Tremor and Toast are software libraries that decode the Ogg Vorbis and GSM Full Rate audio formats respectively. These codecs use fixed-point arithmetic because many audio decoding hardware devices do not have an FPU (to save money) and audio decoding requires enough performance that a software implementation of floating-point on low-speed devices would not produce output in real time.
- All 3D graphics engines on Sony's original PlayStation and Nintendo's Game Boy Advance and Nintendo DS video game systems use fixed-point arithmetic for the same reason as Tremor and Toast: to gain throughput on an architecture without an FPU.
~ Table of Content ~
| ► | Introduction |
| ► | External links |
~ What's Hot ~
~ Community ~
| ► | History Forum Come and discuss about History, Civilizations, Historical Events and Figures |
| ► | History Web-Ring A community of sites, blogs and forums dedicated to History. Do not hesitate to submit your site. |
and are licensed under the GNU Free Documentation License.
Lexicon - Privacy Policy - Spiritus-Temporis.com ©2005.