Skip to main content
PocketToolz

Why your 1TB drive says 931GB, and other size confusions

Bits versus bytes, the 1000-versus-1024 split that eats 69GB of a terabyte, which convention applies where, and the hidden 33% Base64 adds.

8 min read

Buy a 1 TB drive, plug it in, and your computer reports 931 GB. Nothing is missing and nobody is cheating. Two industries settled on two different meanings for the same prefix, and almost every confusion about file sizes traces back to that one disagreement — or to the other one, between bits and bytes.

Bits and bytes are not the same, and the difference is eight

A bit is a single 1 or 0. A byte is eight of them, and it is the unit files are measured in.

The notation is unforgiving: a lowercase b means bits, an uppercase B means bytes. So Mb and MB differ by a factor of eight, and they look almost identical on a page.

This is why your internet feels slower than advertised. Broadband is sold in megabits per second, but downloads are shown in megabytes per second. A 100 Mbps connection delivers at best about 12.5 MB/s. The connection is doing exactly what was promised; the units changed underneath you.

The 1000 versus 1024 problem

Computers count in binary, so 1024 (210) is a natural round number to them. Humans count in tens, so 1000 is a natural round number to us. Both got used, and both got called “kilo”.

The gap compounds at every step. It is 2.4% at kilobytes, 4.9% at megabytes, 7.4% at gigabytes and 10% at terabytes — which is exactly the missing 69 GB on that 1 TB drive.

The drive genuinely holds 1,000,000,000,000 bytes, which is a terabyte by the decimal definition the manufacturer used. Your operating system divides by 1024 four times and reports 931. Same bytes, different arithmetic. The data size converter handles both conventions rather than picking one and hoping.

KiB, MiB and GiB

The standards bodies did solve this, in 1998. Binary units got their own prefixes — kibi, mebi, gibi, written KiB, MiB and GiB — leaving kB, MB and GB to mean powers of 1000 unambiguously.

Adoption has been patchy, which is the polite description. Linux and macOS largely comply. Windows still reports GiB while writing “GB”. RAM is universally sold in binary units regardless of how it is labelled. So the prefixes exist, they are correct, and you still cannot trust a label to be using them.

Which convention applies where

There is a pattern, and knowing it resolves most cases without looking anything up.

Storage sold to you is decimal. Drives, SSDs, memory cards and phone capacities are quoted in powers of 1000 — which makes the number larger, so there is little commercial pressure to change.

Memory is binary. RAM comes in 8 GB and 16 GB sticks that are really 8 and 16 GiB, because memory addressing is physically binary. Nobody makes a 10 GB stick.

Networks are decimal, and in bits. Both conversions against you at once: 100 Mbps is 100,000,000 bits per second, which is about 11.9 MiB/s as your download manager would count it.

What things actually weigh

A rough sense of scale is more useful than any conversion table. A page of plain text is a few kilobytes. A photo from a modern phone is 2 to 5 MB. A minute of music is around 1 MB compressed. A minute of 1080p video is roughly 60 to 100 MB, and 4K several times that.

The pattern worth internalising: text is nearly free, images cost, and video dominates everything. Any time a folder is unexpectedly large, video or uncompressed images are almost always the reason.

When something needs to fit under a limit — an email attachment, an upload cap — compressing an image or a PDF usually gets there without visible loss, because both formats leave a great deal of room by default.

The hidden 33%: Base64

One size change catches people out because it happens invisibly. Base64 encoding represents binary data using only text characters, which is what lets an image be embedded directly in HTML, CSS or a JSON payload.

It costs about 33% extra size, because every three bytes become four characters. A 90 KB image becomes roughly 120 KB once converted to a data URI, and that inflated version is what ships to every visitor.

The trade is a saved HTTP request against a larger, uncacheable payload. For a tiny icon that is usually worth it; for a photograph it rarely is. The same arithmetic applies whenever you encode anything to Base64, which is also why Base64-encoded email attachments are larger than the files they carry.

Reading a size without being misled

Three habits cover nearly everything. Check the case of the b — bits or bytes changes the answer eightfold. Assume storage is decimal and memory is binary unless told otherwise. And when a number is 7% or 10% off what you expected, suspect the 1000-versus-1024 gap before suspecting a fault, because that is almost always what it is.

Tools for this

Everything below runs in your browser. Nothing is uploaded.