Q format
Q (number) format is a fixed-point method of coding fractional and whole integers for processing by a computer’s CPU or a digital signal processor (DSP).
The Q format is used to enable rational number processing by a standard integer hardware arithmetic logic unit (ALU). Q format is used frequently when a CPU lacks a floating point unit (FPU). The format can also be useful for processing fractions on lower-cost DSPs, reducing hardware costs.
To enable processing of fractions on lower-cost or older hardware, Q is used to imply a binary point to represent fractions. Q format is stored and processed as regular binary signed integer. The Q format specifies how many bits are used to represent whole integers and how many bits are used to represent fractional integers. For example, to note that an algorithm is using one bit to specify whole integers and 15 bits to specify fractional integers, one would use the Q1.15 format. If there is no decimal in a Q format, such as Q55, that implies all bits are used for fractional values.
An example of how a fraction is processed under the Q format would be the real number 5.375 represented as a=0×23+1×22+0×21+1×20+0×2−1+1×2−2+1×2−3+0×2−4=5.375.
The Q format was integral to fractional operations in early PC CPUs. The Intel 8086 was the first CPU to support an add-on floating point co-processor. These co-processors reduced the time spent processing fractions and the need for methods like Q format. Modern CPUs such as the Intel Core series and AMD Ryzen have built-in floating point processors along with the x87 extension on the x86 -64 instruction set.