Published 15 January 2026 · 7 min read
The Core Problem
Computers work in binary. Memory addresses, cache lines, disk sectors, and register widths are all powers of two. When engineers started naming multiples of bytes, they naturally used 1024 (2¹⁰) as the multiplier for "kilo" — even though the SI prefix "kilo" had meant 1000 for over a century.
For decades, "kilobyte" was ambiguous. It could mean 1000 bytes or 1024 bytes depending on who was asking. In consumer contexts, hard drive manufacturers used 1000 (which made drives sound bigger). In computing contexts, operating systems and programmers used 1024 (because it matched their hardware).
The IEC Fix (1998)
In December 1998, the International Electrotechnical Commission (IEC) published new prefixes to disambiguate the two systems:
| IEC Prefix | Symbol | Value |
|---|---|---|
| kibi | Ki | 2¹⁰ = 1,024 |
| mebi | Mi | 2²⁰ = 1,048,576 |
| gibi | Gi | 2³⁰ = 1,073,741,824 |
| tebi | Ti | 2⁴⁰ = 1,099,511,627,776 |
| pebi | Pi | 2⁵⁰ = 1,125,899,906,842,624 |
| exbi | Ei | 2⁶⁰ = 1,152,921,504,606,846,976 |
IEEE 1541-2002 later formalized these prefixes. In principle, the ambiguity was resolved: use kB, MB, GB for decimal (1000-based) and KiB, MiB, GiB for binary (1024-based).
The Reality (2002–2026)
Twenty-four years after the IEC standard, adoption has been partial:
- macOS: Uses decimal SI since 10.6 (Snow Leopard, 2009). A 1 TB drive shows as "1 TB".
- Windows: Uses binary values but labels them with SI prefixes. A 1 TB drive shows as "931 GB".
- Linux:
ls -lhuses binary values with SI prefixes.ls --siuses true decimal. - Drive manufacturers: Consistently use decimal SI, which is why the mismatch occurs.
- Mobile OS (iOS, Android): Mostly decimal SI.
- RAM manufacturers: Use binary GiB but label as "GB". A 16 GB RAM stick is 16 GiB = 17,179,869,184 bytes.
The Numbers
The ratio between the two systems grows with magnitude:
| Magnitude | SI (decimal) | IEC (binary) | IEC / SI |
|---|---|---|---|
| kilo / kibi | 1,000 | 1,024 | 1.024 |
| mega / mebi | 10⁶ | 2²⁰ | 1.0486 |
| giga / gibi | 10⁹ | 2³⁰ | 1.0737 |
| tera / tebi | 10¹² | 2⁴⁰ | 1.0995 |
| peta / pebi | 10¹⁵ | 2⁵⁰ | 1.1259 |
The practical consequence: at the terabyte level, the difference approaches 10%. A "1 TB" drive really holds 1,000,000,000,000 bytes, which is 931.32 GiB. Windows displays this as "931 GB".
The Actual Bytes
It is worth stating what a drive actually holds:
- A drive labeled "500 GB" contains exactly 500,000,000,000 bytes.
- A drive labeled "1 TB" contains exactly 1,000,000,000,000 bytes.
- A drive labeled "2 TB" contains exactly 2,000,000,000,000 bytes.
The manufacturer is not lying. The bytes are there. The OS is simply displaying them in binary units while labeling them with SI prefixes.
Why Doesn't Microsoft Fix This?
The short answer: it would confuse users. If Windows suddenly started showing "1 TB" for a drive that used to show "931 GB", most users would think the drive capacity changed. Microsoft has chosen to keep the familiar (if technically incorrect) display rather than introduce a change that would generate support tickets.
The longer answer: there is a genuine trade-off between technical correctness (use GiB consistently) and user familiarity (keep using "GB" as everyone does). Neither choice is obviously right.
Practical Guidance
- Storage shopping: Understand that the manufacturer's "TB" is decimal. A 4 TB drive will show as about 3.64 TiB in Windows, but it is really 4 TB (4 trillion bytes).
- Cloud storage billing: Check the provider's definition. Some bill by GB (decimal); others by GiB (binary). At scale, the difference matters.
- Writing documentation: Use KiB, MiB, GiB when referring to binary values. Use kB, MB, GB when referring to decimal values. Ambiguity causes real bugs in software.
- Programmatic use: When working with storage APIs, verify whether sizes are returned in decimal or binary units. This is a common source of off-by-10% bugs.
- Personal calculation: When in doubt, convert to bytes. Bytes are unambiguous.
What M-Convert Does
M-Convert's digital converters use SI definitions consistently (1 MB = 1,000,000 bytes; 1 GB = 1,000,000,000 bytes) and provide dedicated IEC converters (MB to MiB, GB to GiB, TB to TiB) for the binary values. This way the distinction is explicit rather than hidden.
The Bottom Line
Digital units remain a source of confusion because the industry never fully adopted the IEC standard. The distinction between decimal and binary prefixes is real, the difference matters at consumer-visible scales, and there is no sign that either side will change its convention in the near future. The best response is to be aware of the difference, use precise terminology, and verify units whenever the exact byte count matters.