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