MB vs MiB: why a 1 TB drive shows up as 931 GB
Drive makers count in powers of 1000, operating systems in powers of 1024. Nobody is lying — the maths behind the missing gigabytes, and what KiB and MiB mean.
Published
Buy a 1 TB drive, plug it in, and Windows reports 931 GB. Roughly 7% of the capacity appears to be missing. It is not — every byte you paid for is there. The manufacturer and your operating system are simply using the same words to mean different numbers.
Two meanings of “mega”
In every other context, metric prefixes are powers of 1000: a kilometre is 1000 metres, a megawatt is 1,000,000 watts. Storage manufacturers use them the same way:
1 kB = 1,000 bytes
1 MB = 1,000,000 bytes
1 GB = 1,000,000,000 bytes
1 TB = 1,000,000,000,000 bytes
But computers address memory in powers of 2, so early computing borrowed the same prefixes for the nearby binary quantities: “kilobyte” for 1024 bytes, “megabyte” for 1024², and so on. The two usages coexisted for decades, and the gap between them widens with every prefix:
| Prefix | Decimal | Binary | Gap |
|---|---|---|---|
| kilo | 1,000 | 1,024 | 2.4% |
| mega | 1,000,000 | 1,048,576 | 4.9% |
| giga | 10⁹ | 1,073,741,824 | 7.4% |
| tera | 10¹² | 1,099,511,627,776 | 10.0% |
The missing gigabytes, precisely
Your “1 TB” drive holds 1,000,000,000,000 bytes — exactly what the label says, in decimal units. Windows divides that by 1024³ to display it in binary gigabytes:
1,000,000,000,000 ÷ 1,073,741,824 = 931.3
So it displays “931 GB”. Same bytes, different divisor. At 4 TB the displayed figure is 3,638 GB and people start writing to manufacturers.
KiB, MiB, GiB: the fix nobody adopted evenly
In 1998 the IEC standardised separate names for the binary quantities: kibibyte (KiB) = 1024 bytes, mebibyte (MiB) = 1024² bytes, gibibyte (GiB) = 1024³ bytes. Under this scheme the words are unambiguous: MB always means 10⁶ bytes, MiB always means 2²⁰.
Adoption, twenty-five years on, is a patchwork:
- Storage manufacturers: decimal MB/GB/TB, as always.
- macOS and Linux desktops: switched to decimal years ago — a Mac reports the same 1 TB drive as 1 TB, so the “missing space” question is mostly a Windows phenomenon now.
- Windows: still computes in binary but labels it KB/MB/GB — the one combination the standard specifically sought to eliminate.
- Linux command-line tools: often support both (
--siflags) and many correctly print KiB/MiB. - Networking: always decimal, and in bits — a 100 Mbps connection moves at most 12.5 decimal megabytes per second, a separate factor-of-8 confusion stacked on top.
- RAM: genuinely binary by construction — a “16 GB” memory kit really is 16 GiB. Convention, not deception, decides which industry rounds which way.
Practical consequences
Checking a drive is not defective. Multiply the label by 0.931 (TB) or 0.9313 (GB→GiB) before comparing against Windows. A 2 TB drive showing 1,862 GB is exactly right.
Estimating what fits. File sizes shown by Windows are binary; drive capacity marketing is decimal. Converting both to plain bytes before doing arithmetic avoids the mismatch entirely — the file size converter translates between B, kB, KiB, MB, MiB and the rest in both directions.
Reading bandwidth quotes. Divide advertised Mbps by 8 for decimal MB/s, then knock off another ~5% if comparing against a binary MiB/s figure from a download manager.
None of the parties involved is cheating. The confusion is a fifty-year-old naming collision that standardisation only partially cleaned up — and once you know which convention each screen is using, the numbers all agree.