Data goes through the central processing unit which utilises main and cache memory to improve system performance. Peripherals use interfaces to communicate between the system and a connected device.

Real numbers are numbers that include fractions/values after the decimal point.

For example, 123.75 is a real number. This type of number is also known as a **floating point number**.

All floating point numbers are stored by a computer system using a **mantissa** and an **exponent**.

The following example is used to illustrate the role of the mantissa and the exponent. It does not fully reflect the computer's method for storing real numbers but gives the general idea.

The number 123.75 can be represented using mathematical scientific notation as:

**1.2375 x 10 ^{2} = 123.75**

Multiplying by ten to the power of two (10^{2}) moves the values up two places (or the decimal point down two places) so that the number 123 is before the decimal point, while the number 75 now comes immediately after the decimal point. In this example the mantissa is 1.2375 and the exponent is 2. Generally you can think of this as:

**M X 10 ^{E}**

To represent the same value in binary, apply the following rules:

Represent the number 123.75 as:

64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 |

1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |

**64 + 32 + 16 + 8 + 2 + 1 + 0.5 + 0.25 = 123.75**

The number created in binary is the mantissa:

**111101111**

To understand the exponent, place the decimal point after the most significant bit of the mantissa. The most significant bit is the left most bit.

**1.11101111**

To calculate the exponent, it is necessary to determine how many places the decimal point would need to move to give the correct number. In this case the decimal point would need to move six places to the right:

**1.11101111** - Decimal point must move six places to accurately represent 123.75

So the exponent for our number is 6. In binary, the number six is:

**As 4 + 2 = 6**

In order to represent 123.75 the mantissa would be 111101111 and the exponent would be 110. This can be thought of as:

**M X 2 ^{E}** (where M repersents the mantissa and E represents the exponent)

**1.11101111 x 2 ^{110}**

There will always be a trade-off between accuracy and range when using floating point notation, as there will always be a set number of bits allocated to storing real numbers:

- increasing the number of bits devoted to the mantissa will improve the accuracy of a floating point number
- increasing the number of bits devoted to the exponent will increase the range of numbers that can be held