General: So what's a kibibyte? Binary, SI, and IEC Units

General: So what's a kibibyte? Binary, SI, and IEC Units

Whenever we’re talking about an amount of data, it’s important to understand the units that are used. In all the early days of computing, it all seemed pretty simple. We had KB for 1024 bytes, MB for 1024 * 1024 bytes, etc.

The first people I saw messing that up were the hard drive manufacturers. Originally, they followed the standard units that we had been using in computing. But somewhere along the way, they changed how this worked. The vendors decided that if they had 10,000,000 bytes of storage, they would call that a 10MB hard drive, but of course it wasn’t, at least not in how we used to measure them. Some of the vendors even started talking about hard drive megabytes like it was some other new unit. That meant that suddenly a 128MB hard drive (128 * 1024 * 1024 * 1024 or 137,438,953,472 bytes) became a 137MB hard drive.

And so the confusion began.

SI Units

The problem with the original computing definition was that it didn’t match any of the standard SI units i.e., the units we used to measure everything else in the world.

SI stands for Système international d’unités, which is French for International System of Units.

Under SI rules:

  • The symbol for kilo is a lowercase k
  • The symbol for byte is an uppercase B
  • SI prefixes are always decimal, not binary

From this:

  • kB (kilobyte) = 1,000 bytes

This definition is precise and unambiguous under SI standards.

How Binary Usage Entered Computing

Early computer systems were built around powers of two. Memory sizes such as 1,024 bytes aligned naturally with binary addressing, so engineers began using familiar SI prefixes informally:

  • “Kilobyte” used to mean 1,024 bytes
  • “Megabyte” used to mean 1,048,576 bytes
  • “Gigabyte” used to mean 1,073,741,824 bytes

This practice was convenient but technically incorrect, because SI prefixes were never defined to represent binary multiples.

To make matters worse, inconsistent capitalization was often used:

  • KB was commonly written to imply 1,024 bytes
  • The capital K had no formal meaning in SI

This convention persisted for decades and still appears in older software, documentation, and user interfaces.

The IEC Solution: Binary Prefixes

To resolve the ambiguity, the International Electrotechnical Commission (IEC) introduced binary prefixes in 1998.

These prefixes explicitly represent powers of two:

  • KiB (kibibyte) = 2^10 = 1,024 bytes
  • MiB (mebibyte) = 2^20 = 1,048,576 bytes
  • GiB (gibibyte) = 2^30 = 1,073,741,824 bytes

Important characteristics:

  • The “i” indicates binary
  • Capitalization is fixed and meaningful
  • Each unit has an exact, formal definition

This system allows decimal and binary measurements to coexist without overlap.

Common Units Compared

Unit Meaning Bytes
kB SI kilobyte 1,000
KB Informal / legacy Often 1,024 (not standardized)
KiB IEC kibibyte 1,024

Key Distinction

  • If you are following SI (decimal-based) units, 1,000 bytes is always kB
  • If you mean 1,024 bytes, modern standards say you should use KiB
  • KB has no formal definition and should be avoided in precise technical writing

Why This Still Matters

Different parts of the computing industry use different conventions:

  • Storage manufacturers typically use decimal units (kB, MB, GB)
  • Operating systems and memory tools often use binary units (KiB, MiB, GiB), sometimes without clearly labeling them
  • Legacy documentation may mix symbols or use KB inconsistently

This can lead to apparent discrepancies in reported sizes, even when no data is missing.

Practical Guidance

For technical accuracy:

  • Use kB, MB, GB when referring to decimal quantities
  • Use KiB, MiB, GiB when referring to binary quantities
  • Avoid KB unless you are intentionally mirroring legacy terminology

Clear unit usage removes ambiguity and makes documentation easier to interpret, especially for storage, memory, and performance discussions.

2026-03-25