# Fundamentals of Data Representation: Binary fractions

## Binary Fractions[edit]

So far we have only looked at whole numbers (integers), we need to understand how computers represent fractions.

You should have learned at Primary School how a decimal fraction works:

10 | 1 | |||
---|---|---|---|---|

1 | 2 | . | 7 | 5 |

As you can see, the column headings have been extended to and . We can do the same thing in binary with the column headings , , and so on. The number 12.75 in 8 bit binary with 4 bits after the binary point is therefore 8 + 4 + 0.5 + 0.25:

8 | 4 | 2 | 1 | |||||
---|---|---|---|---|---|---|---|---|

1 | 1 | 0 | 0 | . | 1 | 1 | 0 | 0 |

Notice that for the same number of bits after the point, the **binary fraction provides less accuracy**. It can only take 4 different values, whereas the decimal number can have 100 different values with two digits. You'll see in a moment how this can cause trouble.

Example: converting decimal to binary decimal
We are going to convert the number 6.125 into a binary fraction by using the grid below
This seems simple enough as 6.125 = 4 + 2 + 0.125, but what about this more interesting number: 6.4
But this doesn't look right?! This number isn't correct as it only reaches 4 + 2 + 0.25 + 0.125 = 6.375, we need more bits for the binary fraction places. However, a computer might restrict you to the number of bits you can use, so we'll use the number closest to the one we were aiming for. You could feel a bit annoyed at this, but don't worry, you make this compromise every time you try to represent with the decimal factions, 0.33333333. |

So you might ask how a computer does complicated mathematics if it struggles so hard with fractions. The answers we have looked at so far have only used one byte, computers can use far more space than this. They can also manipulate the number of bits they have been given in two ways:

- increase the number of bits to increase range of number
- increase number of bits after the decimal point to increase accuracy

In practice they will also use clever techniques such as floating point numbers that you will meet in A2.

Exercise: converting from denary to binary fractions
Now try some questions yourself and see how you get on. Remember, where there aren't enough bits for the decimal place, write down the number closest to your target number. In each case use 8 bits for the binary with four bits after the decimal point: 7.5
0111.1000 4.5625
0100.1001 1.6
0001.1001 (this is the closest we are going to get) 3.3333333
0011.0101 (this is the closest we are going to get) Try and convert these binary fractions into denary: 0111.0100
7.25 1011.1001
11.5625 (notice that we treated this as a positive number, some of you might already know about If I want to increase the range of numbers stored in a fixed point binary number, what should I do?
Increase the number of bits before the decimal point If I want to increase the accuracy of numbers stored in a fixed point binary number, what should I do?
Increase the number of bits after the decimal point |