# Binary-coded decimal

From Just Solve the File Format Problem

**Binary-coded decimal**(

**BCD**) is a family of methods to encode decimal numbers in binary data formats. It is not particularly common, though it used to be more common than it is now.

It is inefficient compared to purely base-2 number formats, but it can be useful when accurate decimal calculations are needed.

EBCDIC was derived from IBM's forms of BCD, expanded to encompass non-numeric characters.

## Format

Each decimal digit is encoded in four bits:

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

0 | 0000 |

1 | 0001 |

2 | 0010 |

3 | 0011 |

4 | 0100 |

5 | 0101 |

6 | 0110 |

7 | 0111 |

8 | 1000 |

9 | 1001 |

The other possible codes, starting with 1010, are unused and invalid.

Two digits are usually packed into a single byte, though there can be just be one digit per byte, among other possible encodings.