MB vs MiB: Why Your 1 TB Drive Shows 931 GB
By WuTools editorial team · Updated
You buy a 1 TB SSD. You plug it in. The operating system says 931 GB. Did the manufacturer cheat? No — they used a different prefix system. The drive really has one trillion bytes; the OS is reporting how many binary gigabytes (gibibytes) those bytes contain. This guide explains the difference between the SI and IEC prefix families, why both exist, when to use each, and how to convert between them in our data-storage converter.
Two systems for the same prefix letter
The kilo-, mega-, giga-, tera- prefixes were defined long before computers, by the SI (International System of Units) standards body. They mean exactly what your physics teacher said: kilo is 1000, mega is 1 000 000, giga is 1 000 000 000, tera is 10¹². A kilometre is exactly 1000 metres, never 1024. This is the decimal prefix system.
When early computer engineers wanted to talk about memory, they liked the kilo- prefix because 2¹⁰ = 1024 was "close enough" to 1000 for casual use. So "1 KB of memory" came to mean 1024 bytes — a colloquial overload of an SI prefix. By the 1980s, this had spread to MB (1024² = 1 048 576 bytes), GB, and TB.
The result was a 24-year mess: "1 GB" could mean 10⁹ bytes (manufacturer / SI) or 2³⁰ = 1 073 741 824 bytes (operating system / colloquial). Same letters, different values, and the gap grows: at the kilo level it's 2.4%, at giga it's 7.4%, at tera 10%, at peta 12.6%. The gap is exactly why a 1 TB drive shows as 931 GB.
The IEC fix: kibi, mebi, gibi, tebi
In 1998 the International Electrotechnical Commission (IEC) published standard IEC 60027-2 — later folded into IEC 80000-13 — defining new binary prefixes that explicitly mean powers of 1024:
kibibyte (KiB) = 2¹⁰ = 1 024 bytes.
mebibyte (MiB) = 2²⁰ = 1 048 576 bytes.
gibibyte (GiB) = 2³⁰ = 1 073 741 824 bytes.
tebibyte (TiB) = 2⁴⁰ = 1 099 511 627 776 bytes.
pebibyte (PiB) = 2⁵⁰.
The old SI prefixes (KB, MB, GB, TB) reverted to their strict decimal meanings: 1 GB = 10⁹ bytes, full stop. IEEE 1541-2002 and NIST SP 811 endorse this convention. So the official, post-1998 rule is: SI letters = decimal, -bi- letters = binary.
Who uses which
Drive manufacturers (Samsung, Western Digital, Seagate, Kingston, Crucial, SanDisk) use SI / decimal. "1 TB" on the box means 10¹² bytes exactly. Same goes for SSD, HDD, USB drives, SD cards.
Network bandwidth uses SI / decimal. "100 Mbps" Ethernet means exactly 100 × 10⁶ bits per second.
RAM modules use binary, but with the old SI letters. A "16 GB" stick is really 16 × 2³⁰ = 17 179 869 184 bytes. This is the one place where the colloquial pre-IEC convention is both universal and accurate, because RAM is addressed in powers of 2 by hardware design.
Windows still uses GB to mean GiB in File Explorer (a 1 TB drive shows as 931 GB; the formatted capacity is shown as 931 GiB but labelled "GB"). This is technically wrong since IEC 60027-2 but is unlikely to change.
macOS switched to SI / decimal in 10.6 (2009). On a Mac, a 1 TB drive shows as approximately 1 TB — 1 000 GB.
Linux varies by tool. df -h uses GiB (binary, even though it prints "G"). df --si uses GB (decimal). ls -lh uses binary. Most modern desktop file managers (GNOME Files, Dolphin) use SI.
Where the drive's missing capacity goes
When you buy a "1 TB" SSD, the manufacturer's marketing claim is exact: 10¹² bytes raw, often slightly more for over-provisioning (the drive controller reserves 5–15% for wear levelling and bad-block remapping, depending on the model). The operating system reports 931.32 GiB — that's the same bytes counted in 1024s.
Sometimes another 5–10 GB disappears to formatting overhead (filesystem metadata, journal, recovery partition). In Windows you'll often see a 1 TB drive end up showing 920–925 GB free after a fresh NTFS format. None of this is the manufacturer cheating; it's just two different prefix systems plus filesystem accounting.
How to mentally convert
To go from a manufacturer's TB to OS GB (really GiB), divide by 1.0995 (which is 2⁴⁰ ÷ 10¹²). Quick rule of thumb: multiply the marketing TB by 0.91 to get OS GB. So 1 TB → 931 GB, 2 TB → 1862 GB, 4 TB → 3725 GB, 8 TB → 7451 GB. The percentage gap is fixed (~9.1%); double the drive, double the apparent shortfall.
Going the other way: 1 GiB = 1.0737 GB. So a 16 GiB RAM stick is 17.18 GB if you wanted to express it decimally, though no one does. Our data-storage hub has both prefix families side by side.
Reading the file size in different OSes
Same 5 000 000-byte file:
On Windows, File Explorer shows 4.77 MB (binary, but labelled MB).
On macOS, Finder shows 5 MB (decimal SI).
On Linux ls -lh: 4.8M (binary).
On Linux ls -l --si: 5.0M (decimal).
When transferring files between systems, the apparent size changes — the underlying byte count is identical.
When to use which prefix in your own work
If you're writing user-facing copy about storage capacity, prefer the unit family the audience is used to: SI for marketing and most cloud-storage talk, IEC binary for technical documentation aimed at engineers.
In code: store byte counts as integers, then format. Use SI prefixes (KB, MB, GB) with k=1000 when displaying download sizes, network bandwidth, file sizes on macOS-style UIs. Use IEC prefixes (KiB, MiB, GiB) when discussing memory allocation, page sizes, or anything that's literally a power of two.
In specification documents and standards: use IEC. Don't write "1 GB of RAM" if you mean 2³⁰ bytes — write "1 GiB". This eliminates a 7.4% ambiguity that has caused real bugs.
Network bandwidth has a third twist
Network speeds are quoted in bits per second (lowercase b), not bytes (uppercase B). "100 Mbps" is 100 megabits per second = 12.5 megabytes per second (divide by 8). So a 100 Mbps connection downloads at most 12.5 MB/s, never 100 MB/s. Many ISPs use this difference deliberately when marketing speeds.
Network speeds use SI / decimal: 1 Gbps = 10⁹ bits per second exactly. There is no "Gibps" in common use; binary prefixes don't show up in networking. Use our data-rate hub for bit-versus-byte and bandwidth conversions.
Related WuTools
- Data-Storage Converter Hub — All decimal and binary prefixes side by side
- Data-Rate Converter Hub — Mbps, MB/s, Gbps and friends
- GB → MB — Decimal-to-decimal conversion
- byte → gibibit — Decimal-to-binary across units
- GB → gibibit — When you need both prefix families
Frequently asked questions
So my 1 TB drive really has 1 trillion bytes?
Yes — exactly 10¹² bytes (with maybe a tiny bit more reserved for over-provisioning). The OS reports it as 931 GiB because it counts in powers of 1024 and labels the result "GB" by old convention.
Is there a way to make Windows show the SI capacity?
Not by default. Windows has used GiB labelled as GB since the 90s and Microsoft has shown no intent to change. Third-party file managers can override this, but most users live with the discrepancy.
What about RAM — is 16 GB really 16 GiB?
Yes. RAM is the one place where the colloquial pre-IEC "GB = 2³⁰" convention is actually accurate, because hardware addresses RAM in powers of two. A 16 GB memory module contains exactly 17 179 869 184 bytes.
Why are the IEC names so awkward?
"Kibi" comes from kilo binary, "mebi" from mega binary. The names are deliberately ugly to make it obvious you're using the binary version. Adoption has been slow precisely because people find them clunky, but they are the only way to be unambiguous.
Are network speeds in binary or decimal?
Decimal SI. "1 Gbps" is 10⁹ bits per second, not 2³⁰. There is no commonly used "Gibps" — networking has stuck consistently with SI prefixes since the start.
How much smaller is a binary GB compared to a decimal GB?
1 GiB ÷ 1 GB = 1.0737. So one binary gigabyte (GiB) is about 7.4% larger than one decimal gigabyte (GB). At the terabyte level it's 10%; at petabyte 12.6%. The gap grows with the prefix.
Does this affect cloud storage pricing?
Cloud providers (AWS S3, Google Cloud Storage, Azure) use SI / decimal. "100 GB of storage" billed by AWS is 100 × 10⁹ bytes, no surprise. Most cloud-egress bills are also in decimal GB.
Is mb the same as MB?
No — mb is megabit (lowercase b), MB is megabyte (uppercase B). 8 mb = 1 MB. Network speeds use mb (Mbps); file sizes use MB. This is a different confusion from the binary/decimal one but equally common.
