# Use and interpretation of number systems

All computer data is binary. That is, any individual piece of data can only ever be one of two values: 0 or 1.

By combining multiple values together, more meaningful information can be stored, although it is always the case that you must know what type of information you are using: different types of data will require different interpretations of the 0s and 1s.

## Units of digital data

This should be common knowledge already, but:

Unit | Size |
---|---|

bit | The smallest unit; a single 0 or 1 |

nibble | Four bits; e.g. 0100 |

byte | 8 bits; can store a value of 0-255 or -127 to 128 |

kilobyte (kb) | 1024 bytes |

megabyte (MB) | 1024kb |

gigabyte (GB) | 1024MB |

terabyte (TB) | 1024GB |

Petabyte (PB) | 1024TB |

## Binary

Binary is a number system. Its name is formed in the same manner as our standard number system – which is base 10, denary. Computers don’t work with multiples of ten, they operate in multiples of 2 (there are only two ‘digits’ which are 0 and 1).

Binary refers to a number system which contains only two different values.

In denary, we are used to this, and are taught to interpret numbers this way:

10,000,000s | 1,000,000s | 100,000s | 10,000s | 1000s | 100s | 10s | 1s |

4 | 2 | 1 | 3 | 7 |

That is, 4 lots of 10,000 added to 2 lots of 1000, 1 lot of 100, 3 lots of 10 and 7 units.

As there are ten different digits, (0 – 9), each column can represent ten different values. That means that each column moving from right to left is worth ten times more.

In binary, it appears like this:

128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |

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

There are only two possible values for each column (0 or 1), and therefore, the columns increase by a factor of 2 as you move from right to left.

Again, it should be simple to calculate that the above number is:

1*128 + 1*16 + 1*8 + 1*4 + 1*1 = 157.

## Binary coded decimal

As seen above, numbers can be represented in binary.

Binary coded decimal (BCD) is an alternative scheme, and works slightly differently.

Each of the ten digits is assigned a 4-bit binary code:

Digit | BCD |
---|---|

0 | 0000 |

1 | 0001 |

2 | 0010 |

3 | 0011 |

4 | 0100 |

5 | 0101 |

6 | 0110 |

7 | 0111 |

8 | 1000 |

9 | 1001 |

Now, in representing denary values, each digit is replaced with the BCD equivalent:

47 would become 0100 0111

This is different to what would be obtained by converting 47 into binary (00101111).

BCD is easier to translate between denary and binary, for a human. On the other hand, it is less efficient as with 8 bits, it is only possible to represent 100 values (0 to 99), whereas in unsigned integer binary, 8 bits would be able to represent any value from 0 to 255.

Although BCD uses 4 bits per digit, it is not the same as hexadecimal – whereas in hexadecimal values up to 15 can be encoded using four bits, in BCD only values up to and including 9 are encoded.

One example of the use of BCD is in the display driver for a numeric segment display: