Return to kilo-mega-giga-tera-peta-exa-zetta-yotta
Prefixes for multiples of bits (bit) or bytes (B)
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Terms for large quantities of bits can be formed using the standard range of SI prefixes for powers of 10, e.g., kilo = 103 = 1000 (as in kilobit or kbit), mega = 106 =
(as in megabit or Mbit) and giga = 109 =
(as in gigabit or Gbit). These prefixes are more often used for multiples of bytes, as in kilobyte (1 kB = 8000 bit), megabyte (1 MB =
), and gigabyte (1 GB =
).
However, for technical reasons, the capacities of computer memories and some storage units are often multiples of some large power of two, such as 228 =
bytes. To avoid such unwieldy numbers, people have often repurposed the SI prefixes to mean the nearest power of two, e.g., using the prefix kilo for 210 = 1024, mega for 220 =
, and giga for 230 =
, and so on. For example, a random access memory chip with a capacity of 228 bytes would be referred to as a 256-megabyte chip. The table below illustrates these differences.
Symbol | Prefix | SI Meaning | Binary meaning | Size difference |
---|---|---|---|---|
k | kilo | 103 = 10001 | 210 = 10241 | 2.40% |
M | mega | 106 = 10002 | 220 = 10242 | 4.86% |
G | giga | 109 = 10003 | 230 = 10243 | 7.37% |
T | tera | 1012 = 10004 | 240 = 10244 | 9.95% |
P | peta | 1015 = 10005 | 250 = 10245 | 12.59% |
E | exa | 1018 = 10006 | 260 = 10246 | 15.29% |
Z | zetta | 1021 = 10007 | 270 = 10247 | 18.06% |
Y | yotta | 1024 = 10008 | 280 = 10248 | 20.89% |
In the past, uppercase K has been used instead of lowercase k to indicate 1024 instead of 1000. However, this usage was never consistently applied.
On the other hand, for external storage systems (such as optical discs), the SI prefixes are commonly used with their decimal values (powers of 10). There have been many attempts to resolve the confusion by providing alternative notations for power-of-two multiples. In 1998 the International Electrotechnical Commission (IEC) issued a standard for this purpose, namely a series of binary prefixes that use 1024 instead of 1000 as the main radix:<ref name=“IEC80000_2005”/>
Symbol | Prefix | |||
---|---|---|---|---|
Ki | kibi, binary kilo | 1 kibibyte (KiB) | 210 bytes | 1024 B |
Mi | mebi, binary mega | 1 mebibyte (MiB) | 220 bytes | 1024 KiB |
Gi | gibi, binary giga | 1 gibibyte (GiB) | 230 bytes | 1024 MiB |
Ti | tebi, binary tera | 1 tebibyte (TiB) | 240 bytes | 1024 GiB |
Pi | pebi, binary peta | 1 pebibyte (PiB) | 250 bytes | 1024 TiB |
Ei | exbi, binary exa | 1 exbibyte (EiB) | 260 bytes | 1024 PiB |
The JEDEC memory standard JESD88F notes that the definitions of kilo (K), giga (G), and mega (M) based on powers of two are included only to reflect common usage.<ref name=“JEDEC_2018_Terms”/>
A binary prefix is a unit prefix that indicates a multiple of a unit of measurement by an integer power of two. The most commonly used binary prefixes are kibi (symbol Ki, meaning 210 = 1024), mebi (Mi, 220 = 1048576), and gibi (Gi, 230 = 1073741824). They are most often used in information technology as multipliers of bit and byte, when expressing the capacity of storage devices or the size of computer files.
The binary prefixes "kibi", "mebi", etc. were defined in 1999 by the International Electrotechnical Commission (IEC), in the IEC 60027-2 standard (Amendment 2). They were meant to replace the metric (SI) decimal power prefixes, such as "kilo" (k, 103 = 1000), "mega" (M, 106 = 1000000) and "giga" (G, 109 = 1000000000), that were commonly used in the computer industry to indicate the nearest powers of two. For example, a memory module whose capacity was specified by the manufacturer as "2 megabytes" or "2 MB" would hold 2 × 220 = 2097152 bytes, instead of 2 × 106 = 2000000.
On the other hand, a hard disk whose capacity is specified by the manufacturer as "10 gigabytes" or "10 GB", holds 10 × 109 = 10000000000 bytes, or a little more than that, but less than 10 × 230 = 10737418240 and a file whose size is listed as "2.3 GB" may have a size closer to 2.3 × 230 ≈ 2470000000 or to 2.3 × 109 = 2300000000, depending on the program or operating system providing that measurement. This kind of ambiguity is often confusing to computer system users and has resulted in lawsuits. The IEC 60027-2 binary prefixes have been incorporated in the ISO/IEC 80000 standard and are supported by other standards bodies, including the BIPM, which defines the SI system,: p.121 the US NIST, and the European Union.
Prior to the 1999 IEC standard, some industry organizations, such as the Joint Electron Device Engineering Council (JEDEC), attempted to redefine the terms kilobyte, megabyte, and gigabyte, and the corresponding symbols KB, MB, and GB in the binary sense, for use in storage capacity measurements. However, other computer industry sectors (such as magnetic storage) continued using those same terms and symbols with the decimal meaning. Since then, the major standards organizations have expressly disapproved the use of SI prefixes to denote binary multiples, and recommended or mandated the use of the IEC prefixes for that purpose, but the use of SI prefixes in this sense has persisted in some fields.