---
tags: [binary]
---

# Binary units of measurement

A single place or symbol in a decimal number is called a **digit**. For example
the number 343 is a number containing three digits. A digit can be any one of
the ten numerals through 0-9.

The equivalent entity in the
[binary number system](Binary_number_system.md)
is the **bit**. For example the binary number 110 has three bits. A bit can only
have one of two values in contrast to a digit which can have one of ten values.
These values are 0 and 1.

## Sequences of bits

### Informational complexity

The informational complexity of a single digit is much larger than a single bit:
it can represent one of 10 states whereas a bit can only represent one of two
states.

We can think of how much data can be stored in a number in terms of the total
number of unique arrangements of bits or digits. With this in mind, compare a
two digit digital number to a two bit binary number. For the decimal number each
digit can represent one of ten states, hence the total number of unique states
is equal to $2^{10} (1024)$:

With the binary number we have $2^{2} (4)$, giving us far fewer possible unique
states. They are so few we can easily list them:

```
00
01
10
11
```

### Bytes

In order to express larger binary numbers and greater complexity we work with
sequences of bits.

The standard **base sequence** of bits is called a **byte**. This is a binary
number comprising **eight bits**. For example the number `11001110` is a byte
equivalent to 206 in decimal.

A byte allows for a complexity of up to 256 possible states: $2^{8} = 256$

## Metric units: kilobytes, megabytes etc

Having established that the core quantity of information is the byte, the
convention is to apply the
[standard metric prefixes](Prefixes_for_units_of_electrical_measurement.md)
to the byte to establish units:

| Prefix | Symbol | Expression as base ten exponent | Value             | English word |
| ------ | ------ | ------------------------------- | ----------------- | ------------ |
| Terra- | T      | $10^{12}$                       | 1,000,000,000,000 | trillion     |
| Giga-  | G      | $10^9$                          | 1,000,000,000     | billion      |
| Mega-  | M      | $10^6$                          | 1,000,000         | million      |
| Kilo-  | k      | $10^3$                          | 1,000             | thousand     |

Hence 2MB is two million bytes, 4kb is four thousand bytes etc.

Whilst the metric prefixes are conventionally used to refer to aggregates of
bytes, they are only approximate values due to the fact that metric is base ten
whereas bytes are base two. Hence 1MB is not 1,000,000 bytes it is 1,048,576
bytes.

This is usually fine as a shorthand but an accurate representation of byte
values is as follows:

| Prefix | Symbol | Expression as base two exponent | Value             | English word |
| ------ | ------ | ------------------------------- | ----------------- | ------------ |
| Terra- | T / Ti | $2^{40}$                        | 1,099,511,627,776 | trillion     |
| Giga-  | G / Gi | $2^{30}$                        | 1,073,741,824     | billion      |
| Mega-  | M / Mi | $2^{20}$                        | 1,048,576         | million      |
| Kilo-  | k / Ki | $2^{10}$                        | 1,024             | thousand     |

> A special IEEE standard was introduced to distinguish base two within the
> metric nomenclature: kibi, mebi, gibi etc but this was not widely adopted. The
> symbols for this are included above as they are sometimes used by Linux
> programs (Gi, Mi, Ki etc)
