Binary Prefixes
Lasted edited: 2026-07
Unit prefixes in the Computer Science/Engineering (CS/CE) world are a mess despite the standardization. If you see 1kb, what do you read it as? If you are an BIPM SI purist, you'd read it as 1000 bits. However some would use that to say 1024 bytes, given the right context. Maybe bits and bytes can be determined through context clues, however whether we are using a decimal-base or a binary-base is the main topic of this article.
Enter: binary prefixes, they unit prefixes designed to specify base 1024 (). The arguably best choice of binary prefixes is given by ISO/IEC 80000 which define terms like "kibi" (Ki) to denote values by power of two. A more historical units is seen in the JEDEC memory standards which defines kilobytes as B (KB; note capital K), megabytes B (MB), etc..
| Name | Symbol | Value (B) | Decimal |
|---|---|---|---|
| kibi | Ki | ||
| mebi | Mi | ||
| gibi | Gi | ||
| tebi | Ti | ||
| pebi | Pi | ||
| exbi | Ei | ||
| zebi | Zi | ||
| yobi | Yi | ||
| robi | Ri | ||
| quebi | Qi |
Why base 1024?
Since the SI prefixes have been created in decimal, engineers reasonably used the pre-existing unit system for all things computers and it just happens that . So early on, many people used the SI prefixes to also refer to the actual values which are in power of two especially with when for low values, there is only a slight error.
However nowadays, this error is signficantly more problamatic. Take a hardware manufaturer who claims their SSD contains 1TB, now does this mean it is or . If you assumed it would be in base 1024, then you might be surprised to find yourself short nearly 100 gigabytes! In fact, SanDisk sells by SI, say 64GB, and Windows reports by JEDEC, which becomes ~59.6GB.
Real World Examples
- Linux uses SI and ISO/IEC (
man units) - Windows uses JEDEC
- Windows Calculator uses SI and ISO/IEC
- SanDisk uses SI