You bought a 1 TB hard drive. Windows says it’s 931 GB. Apple says it’s 1 TB. Linux says 931 GiB. None of them are wrong. They’re measuring the same bytes with two different rulers.
The two scales
- SI / decimal — KB, MB, GB, TB. Each step ×1000. Used by hard drive manufacturers, ISPs, network speeds, and Apple Finder since 2009.
- IEC / binary — KiB, MiB, GiB, TiB. Each step ×1024. Used by RAM specs, Linux/BSD utilities, Windows file properties, the “technically correct” crowd.
Why two scales exist
Originally, “kilo” in “kilobyte” was a casual borrowing — close enough to 1000 to use the prefix, but actually 1024 because computers are binary (2^10 = 1024). For decades, KB meant 1024 bytes everywhere in computing. Then storage marketing started using the strict SI meaning (1000 bytes) because it makes drive capacities sound bigger. The IEC introduced KiB/MiB/GiB in 1998 to disambiguate. Adoption is still uneven.
The gap compounds
- 1 KB vs 1 KiB — 2.4% difference (1024 / 1000)
- 1 MB vs 1 MiB — 4.9%
- 1 GB vs 1 GiB — 7.4%
- 1 TB vs 1 TiB — 10.0% (and growing — your “1 TB” drive shows as 931 GiB in Windows)
Drop a value in either scale and see the equivalent in the other. KB ↔ KiB, MB ↔ MiB, GB ↔ GiB, side by side.
Bits vs bytes — a separate confusion
Network speeds are quoted in bits per second (Mbps, Gbps). File sizes are in bytes. To translate: 1 byte = 8 bits, so divide bps by 8 to get B/s. A 100 Mbps connection downloads at about 12.5 MB/s, not 100 MB/s. ISPs love bps because the number is bigger.
What to use when
- Talking about hardware capacity — use what the spec sheet uses (decimal for drives, binary for RAM).
- Writing software — be explicit.
1024 * 1024for binary;1_000_000for decimal. Comment the choice. - Talking to humans — use the scale the user’s OS shows them. Confusing them with KiB will not help.
The takeaway
A 1 TB drive has 1 trillion bytes — full stop. Whether your OS shows 1000 GB or 931 GiB is a labeling choice. Both are correct. The bytes are all there.

