You buy a 1 TB drive, plug it in, and Windows tells you it holds 931 GB. Roughly 69 gigabytes have gone missing before you have saved a single file. Nothing is broken, no partition is hiding, and the manufacturer has not short-changed you. The drive holds exactly what the box promised. Your operating system is counting it in different units.

This single ambiguity is responsible for more confused support tickets than almost anything else in consumer storage, and it causes real damage in capacity planning, where a few percent at the terabyte scale becomes a provisioning error nobody notices until a volume fills up.

Why does a 1 TB drive show as 931 GB?

Because the manufacturer counts a terabyte as one trillion bytes, and your operating system divides that same number by 1024 three times instead of by 1000 three times. Both are counting the identical quantity of bytes. Only the size of the unit changes.

Work it through. A drive sold as 1 TB contains 1,000,000,000,000 bytes. Windows converts to gigabytes by dividing by 1024 for kilobytes, again for megabytes, and again for gigabytes — that is 1,073,741,824 bytes per unit. One trillion divided by 1,073,741,824 gives 931.32. The drive then displays 931 GB, using the label GB for a unit that is really a gibibyte.

Decimal and binary units, side by side

Two standards define the prefixes. The decimal set follows SI and steps in powers of 1000. The binary set was standardised by the IEC in 1998 and steps in powers of 1024, with names formed by replacing the second syllable: kibibyte, mebibyte, gibibyte, tebibyte.

Decimal (SI)BytesBinary (IEC)BytesBinary unit is larger by
1 KB1,0001 KiB1,0242.4%
1 MB1,000,0001 MiB1,048,5764.9%
1 GB1,000,000,0001 GiB1,073,741,8247.4%
1 TB1,000,000,000,0001 TiB1,099,511,627,77610.0%

The gap compounds at every step up the scale. That is why the missing slice looks small on a memory card and alarming on a multi-terabyte array. Run any figure through the data storage converter and both readings appear side by side from the same byte count.

Who uses which convention

Knowing the source of a number usually resolves the discrepancy on its own.

  • Drive and SSD manufacturers use decimal. Capacity on the box is always powers of 1000, and packaging now carries a footnote saying so after litigation in the United States during the 2000s.
  • Windows uses binary but labels it decimal. File Explorer divides by 1024 and then writes GB rather than GiB. That mislabelling is the direct cause of the 931 GB question.
  • macOS switched to decimal in 2009. The same drive therefore reads differently on a Mac and a PC, which surprises people moving between the two.
  • Linux varies by tool. ls -h reports binary units, ls --si reports decimal, and df depends on the flags you pass it.
  • Memory is genuinely binary. RAM is addressed in powers of two by physical design, so a 16 GB module really does hold 16 GiB, which is 17.18 billion bytes. Memory is the one place where the marketing number and the binary number agree.

Where the difference costs money

Capacity planning is where this stops being trivia. Provision storage for 500 GiB of data on a drive sold as 500 GB and you are about 34 GiB short before any file system overhead. At the petabyte scale the two systems differ by more than 12%, which is the difference between a rack that fits and one that does not.

Backup windows suffer from a related mix-up between bits and bytes. Network speeds are quoted in bits per second because transmission is serial — bits travel down the wire one at a time. A 100 Mbps connection moves at most 12.5 megabytes per second, since there are eight bits in a byte. Allow another 5 to 10% for protocol overhead and a 1 GB file needs at least 80 seconds of wire time, usually rather more.

Is formatting overhead the same thing?

No, and the two get conflated constantly. Formatting overhead is the space a file system reserves for its own metadata, journal, and allocation tables. It is real but small — a fraction of a percent to a few percent depending on the file system and the block size.

Use the size of the shortfall to tell them apart. If your 1 TB drive shows around 931 GB, that is the unit definitions, and every byte is still available to you. If it then shows slightly less than 931 GB once formatted, that smaller second slice is the file system. One is a labelling difference; the other is genuine consumption.

What should you write in your own documentation?

Write MiB when you mean 1,048,576 bytes and MB when you mean 1,000,000. The extra character costs nothing and removes an entire category of misunderstanding from API documentation, capacity plans, and support conversations.

Where a number has to be exact — a quota, a hard limit, an upload cap — state it in bytes and let the reader convert. Bytes are the only unit in this whole discussion that nobody disputes.

Frequently asked questions

Am I being cheated by the drive manufacturer?

No. A drive sold as 1 TB contains one trillion bytes, which is what the specification claims and what you receive. The manufacturer uses the SI meaning of tera, the same one used for metres and grams. Your operating system reports the identical bytes in units of 1024 and labels them ambiguously.

Why did the IEC invent kibibytes if nobody uses them?

They were standardised in 1998 to end exactly this ambiguity, and adoption has been uneven mainly because Windows kept displaying binary values under decimal labels. Linux tooling, many programming language libraries, and most technical specifications do use them.

How many megabytes are in a gigabyte?

1000 megabytes in decimal units, which is how storage devices and network speeds are quoted. 1024 mebibytes in binary units, which is how most operating systems report file sizes. Check which convention a figure came from before comparing it with another.

Does this affect cloud storage billing?

Yes, and providers differ. Most major cloud platforms bill in binary units — a gibibyte — while describing them as GB in the console. Read the pricing page's own definition rather than assuming, because at scale the 7.4% difference at the gigabyte level is a material line item.

Why is RAM immune to this problem?

Memory addressing is binary by construction: an address bus of n lines can reach exactly 2ⁿ locations. Manufacturers therefore size modules in powers of two and quote them the same way, so 16 GB of RAM is 16 GiB with no discrepancy to explain.

If you work with binary values regularly, the number base converter shows why these particular numbers keep appearing: 1024 is 2¹⁰, which is why every binary prefix is a clean shift of ten bits. The rest of the developer tools follow the same principle of showing the arithmetic rather than just the answer.