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 (210). 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 1024 B (KB; note capital K), megabytes 220 B (MB), etc..

Name Symbol Value (B) Decimal
kibi Ki 210 1.0×103
mebi Mi 220 1.0×106
gibi Gi 230 1.1×109
tebi Ti 240 1.1×1012
pebi Pi 250 1.1×1015
exbi Ei 260 1.2×1018
zebi Zi 270 1.2×1021
yobi Yi 280 1.2×1024
robi Ri 290 1.2×1027
quebi Qi 2100 1.3×1030

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 103210. 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 1×1012 or 1×240. 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