Skip to main content

KB vs KiB: why 100 KB means two different things

A file your computer calls 100 KB can be 102,400 bytes, and a form that means 100,000 will refuse it. The gap is small, deliberate, and genuinely confusing.

Published 3 November 2026

You compress an image until your computer says 100 KB. The upload form rejects it for being over 100 KB. Neither of you is lying.

There are two definitions of a kilobyte in active use, they differ by 2.4%, and nothing in either interface tells you which one is being applied. At the exact boundary — which is where you end up when you are fighting a limit — that 2.4% decides whether the file goes through.

The two definitions

Computers address memory in powers of two, so 210 = 1,024 was a natural unit, and early practice borrowed the metric prefix “kilo” for it even though kilo means exactly 1,000 everywhere else in measurement.

That worked until the discrepancy grew. It is 2.4% at the kilobyte, 4.9% at the megabyte, 7.4% at the gigabyte, and it keeps widening. In 1998 the IEC standardised separate names for the binary units — kibibyte (KiB), mebibyte (MiB), gibibyte (GiB) — leaving KB, MB and GB to mean the decimal powers of ten.

The standard is clear. Adoption is not, which is the entire problem.

Stated asActual bytes
100 KB (decimal, SI)100,000
100 KiB (binary)102,400
1 MB (decimal, SI)1,000,000
1 MiB (binary)1,048,576
2 MB (decimal, SI)2,000,000
2 MiB (binary)2,097,152

Who uses which

This is where it gets genuinely messy, because the labels do not match the arithmetic in several widely used places.

  • Windows File Explorer divides by 1,024 and labels the result “KB”. So Windows showing “100 KB” means up to 102,400 bytes. By the IEC standard that is KiB, but Windows does not say so.
  • macOS Finder has divided by 1,000 since Snow Leopard in 2009. The same file can therefore be reported differently on the two systems — this is not a bug in either.
  • Linux varies by tool. ls -l gives raw bytes; ls -lh uses 1,024 and labels it “K”; ls -l --si uses 1,000.
  • Storage manufacturers use decimal, which is why a “1 TB” drive shows as about 931 GB in Windows. The drive is the advertised size; Windows is dividing by 1,024 and calling it GB.
  • Upload forms are anyone’s guess. The limit is enforced by a line of server code comparing a byte count against a constant, and whether that constant was written 100 * 1024 or 100 * 1000 depended on whoever wrote it.

What this means at the boundary

Almost always, nothing. A 2 MB photo being cut to 400 KB has an enormous margin and the convention is irrelevant.

It matters in exactly one situation, and it is a common one: a hard limit you are deliberately squeezing up against. Government portals and job application forms love a 100 KB cap on a photograph, and getting an image to 100 KB means landing within a couple of percent of the ceiling — precisely the window where the two definitions disagree.

The rule that always works

Target the smaller number. Aim for 100,000 bytes rather than 102,400. A file under 100,000 bytes satisfies both definitions simultaneously, so you never have to find out which one the form was using.

Why Celveri shows the byte count

Every size on this site is displayed in binary units — 1 KB = 1,024 bytes, matching what Windows reports, because that is what most people see when they right-click a file. But because that choice is ambiguous by nature, the compressor also prints the exact byte count next to the target.

That number is not a convention. 99,948 bytes is 99,948 bytes under every definition, on every operating system, to every upload form ever written. When a limit genuinely matters, it is the only figure worth reading.

A quick way to tell what a form means

You usually cannot know in advance, but you can find out cheaply. Produce a file at around 101,000 bytes and try it.

  • Accepted — the form is using 1,024 and your real ceiling is 102,400 bytes.
  • Rejected — it is using 1,000 and you need to get under 100,000.

One test settles it, which beats guessing repeatedly. If the form punishes failed attempts, just target the smaller number and skip the experiment.

The other half of the problem

Sometimes the units are not the issue and the file genuinely is too large. For images, the levers are pixel dimensions and compression quality, in that order. For PDFs, it is the same two levers applied to the pictures inside — why your PDF is too big covers which to change first.

Celveri’s compress to 100 KB page opens with that target already set and shows the exact byte count of the result, including when the target cannot be reached without destroying the image — which it will tell you rather than quietly handing back something unusable.

Tools that help with this

All guides