As the binary multipliers 1,024 (210), 1,048,576 (220) (etc.) are close to certain SI prefixes such as kilo- (1000 = 103) and mega- (1,000,000 = 106) respectively, it has been common practice in some settings to use these prefixes for the binary meanings, that is, to use "mega" (or the symbol, M) to mean 1,048,576 instead of 1,000,000 and so on. However, these prefixes have the decimal meanings in every other context, e.g., when used with SI units. Further, certain areas of computing have always used these prefixes to mean decimal multipliers, and not in the binary sense (e.g. when specifying quantities of individual bits on a serial transmission medium.) This has led to ambiguity on what these prefixes mean.
In 1999, the standards organization known as the International Electrotechnical Commission (IEC) adopted a set of new binary prefixes; e.g., kibi- (symbol Ki, from "kilobinary") and mebi- (symbol Mi, from "megabinary"), to indicate binary multipliers. Each successive prefix is 1024 (210) times the previous one, rather than the 1000 (103) used by the SI prefix system. Under this recommendation, the SI prefixes should only be used in the decimal sense: kilobyte and megabyte denote one thousand bytes and one million bytes respectively, while kibibyte and mebibyte denote 1024 bytes and 1,048,576 bytes respectively. This recommendation has been adopted by some other leading national and international standards, which now state that the prefixes k, M and G should always refer to powers of ten, even in the context of information technology. Notwithstanding the availability of the new binary prefixes and their unambiguous meaning, they have seen limited adoption in the real world; the use of K (or k), M and G as binary multipliers when denoting the capacity of solid‑state memory like random access memory (RAM) remains a ubiquitous industry practice.
By the mid 1960s, binary addressing had become the standard architecture in computer design. The computer system documentation would specify the memory size with an exact number such as 32,768, 65,536 or 131,072 words of storage (all powers of 2). There were several methods used to abbreviate these quantities. The use of K in the binary sense as in a "32K core" can be found as early as 1959 Gene Amdahl's seminal 1964 article on IBM System/360 used 1K to mean 1024. This style was used by other computer vendors, the CDC 7600 System Description (1968) made extensive use of K as 1024. Another style was to truncate the last 3 digits and append K. The exact values 32,768, 65,536 and 131,072 would then become 32K, 65K and 131K. (If 32,768 were instead rounded off, it would be 33K; if K = 1024 were used, 65,536 would become "64K".) This style was used from about 1965 to 1975.
These two styles (K = 1024 and truncation) were used loosely around the same time, sometimes by the same company. (In discussions of binary-addressed memories, the exact size was evident from context.) The HP 21MX real-time computer (1974) denoted 196,608 as 196K and 1,048,576 as 1 M, while the HP 3000 business computer (1973) could have 64K, 96K, or 128K bytes of memory.
The terms Kbit, Kbyte, Mbit and Mbyte started to be used as binary units in the early 1970s. Most memory capacities were expressed in K, even when M could have been used: The IBM System/370 Model 158 brochure (1972) had the following: "Real storage capacity is available in 512K increments ranging from 512K to 2,048K bytes." Megabyte was used to describe the 22-bit addressing of DEC PDP-11/70 (1975) and gigabyte the 30-bit addressing DEC VAX11/780 (1977).
By the mid 1970s it was common to see K (e.g Kbyte) meaning 1,024 and the occasional M (e.g. Mbyte) as 1,048,576 for words or bytes of computer memory (RAM) while K and M were commonly used with their decimal meaning for disk storage. In the 1980s the term G (e.g. GB) with decimal meaning was commonly applied to disk storage while M in its binary meaning became common for computer memory. In the 1990s G in its binary meaning became common usage for computer memory. The first TB hard disk drive (terabyte, decimal meaning) was introduced in 2007.
The dual use of these prefixes as both decimal and binary quantities was defined in standards and dictionaries. The 1986 ANSI/IEEE Std 1084-1986 defined dual uses for kilo and mega. The binary units Kbyte and Mbyte were formally defined in ANSI/IEEE Std 1212-1991. The terms Kbyte, Mbyte, and Gbyte are found in the trade press and in IEEE journals. "Gigabyte" was formally defined in IEEE Std 610.10-1994 as either 1,000,000,000 or 230 bytes. Kilobyte, Kbyte, and KB are equivalent units and all are defined in the current standard, IEEE 100-2000.
The industry has coped with the dual definitions because system memory (RAM) typically uses the binary meaning while disk storage uses the decimal meaning. There are exceptions like diskettes and CDs. There are no SI units for computer storage capacity but the decimal prefix meanings of KB, MB, and GB are often referred to as SI prefixes.
While computer scientists typically used k to mean 1000, they recognized the convenience that would result from working with powers of 1024 and the confusion that resulted from using the same abbreviation for two definitions. Several proposals for unique symbols were made in 1968. (At the time, memory size was small, and only K was in widespread use.) Donald Morrison proposed to use the Greek letter κ to denote 1024, κ² to denote 1024×1024, and so on. Wallace Givens responded with a proposal to use bK as an abbreviation for 1024 and bK2 or bK² for 1024×1024, though he noted that neither the Greek letter nor lowercase letter b would be easy to reproduce on computer printers of the day. Bruce A. Martin further proposed that the units be abandoned altogether, and the letter B be used as a binary exponent, similar to E notation, to create shorthands like 3B20 for 3×220 None of these gained much acceptance, and capitalization of the letter K became the de facto standard for binary notation, though this could not be extended to higher powers. Later, as the discrepancy between the two systems increased, more proposals for unique units were made. In 1996, Markus Kuhn proposed a system of units with di- prefixes, like the "dikilobyte" (K₂B or K2B). Donald Knuth, who used decimal notation like 1 MB = 1000 kB, proposed that the powers of 1024 be designated as "large kilobytes" and "large megabytes" (abbreviated KKB and MMB).
In the early days of computers there was little or no consumer confusion because of the sophisticated nature of the consumers and the practice of the computer manufacturers to specify (as opposed to advertise) their products with decimal digits of sufficient places, e.g., the 1968 IBM stated System 360 "Model 91s can accommodate up to 6,291,496 bytes of main storage.
Hard disk drive manufacturers used MB, i.e. 106 bytes, to characterize their products as early as 1974. By 1977, in its first edition, Disk/Trend, a leading hard disk drive industry marketing consultancy segmented the industry according to MBs (decimal sense) of capacity.
The presentation of hard disk drive capacity by an operating system using MB in a binary sense appears no earlier than Macintosh Finder after 1984. Prior to that, on the systems that had a hard disk drive, capacity was presented in decimal digits with no prefix of any sort (e.g., MS/PC DOS CHKDSK command).
See, for example, the following three images; consumers may be confused by the difference between the 160 GB on the disk drive package and the 149.05 GB reported by the operating system.
|Name||Symbol||Base 2||Base 16||Base 10||Name||Symbol|
|tebi||Ti||240||1610||100 0000 0000(16)||~1012.04||1,099,511,627,776||tera||T|
|pebi||Pi||250||1612.5||4 0000 0000 0000(16)||~1015.05||1,125,899,906,842,624||peta||P|
|exbi||Ei||260||1615||1000 0000 0000 0000(16)||~1018.06||1,152,921,504,606,846,976||exa||E|
|zebi||Zi||270||1617.5||40 0000 0000 0000 0000(16)||~1021.07||1,180,591,620,717,411,303,424||zetta||Z|
|yobi||Yi||280||1620||1 0000 0000 0000 0000 0000(16)||~1024.08||1,208,925,819,614,629,174,706,176||yotta||Y|
Quantities that are multiples of the unit by a power of 2 are indicated using nearby SI prefixes, such as using kilo- (the SI prefix for 1000) to indicate 210=1024. Byte multiples using binary powers up to yottabyte are given by the on-line computing dictionary FOLDOC.
The one-letter symbols are identical to SI prefixes, except for "K", which is used interchangeably with "k" (in SI, only the lower-case "k" represents 1,000).
These prefixes are in common use in contexts such as file and memory sizes. The names and values of the SI prefixes were defined in the 1960 SI standard, with powers-of-1000 values. Standard dictionaries do recognize the binary meanings for these prefixes. Oxford online dictionary defines, for example, megabyte as: "Computing a unit of information equal to one million or (strictly) 1,048,576 bytes."
In January 1999, the International Electrotechnical Commission introduced in an addendum to IEC 60027-2 the prefixes kibi- (kibibyte), mebi-, gibi-, etc., and the symbols Ki, Mi, Gi, etc. to specify binary multiples of a quantity and eliminate the ambiguity with their SI meanings. The names for the new standard are derived from the original SI prefixes followed by "binary", such as "kilobinary", and can be shortened to a prefix like "kibi-". The new standard also clarifies that, from the point of view of the IEC, the SI prefixes will remain to have their base-10 meaning and never have a base-2 meaning.
The second edition of the standard defined them only up to exbi-, but in 2005, the third edition added prefixes zebi- and yobi-, thus matching all SI prefixes with their binary counterparts.
On March 19, 2005 the IEEE standard IEEE 1541-2002 (Prefixes for Binary Multiples) was elevated to a full-use standard by the IEEE Standards Association after a two-year trial period. Nevertheless, , the IEEE Publications division does not use the IEC prefixes in its major magazines such as Spectrum or Computer.
The harmonized ISO/IEC IEC 80000-13:2008 standard cancels and replaces subclauses 3.8 and 3.9 of IEC 60027-2:2005 (those defining Prefixes for binary multiples). The only significant change is the addition of explicit definitions for some quantities.
BIPM (the International Bureau of Weights and Measures which maintains SI) expressly prohibits the binary prefix usage, and recommends the use of the IEC prefixes as an alternative since computing units are not included in SI.. The binary definition of the prefixes k, M, G etc is not permitted by the United States National Institute of Standards and Technology (NIST).
As the order of magnitude increases, the percentage difference between the binary and decimal uses of the prefixes increases, from 2.4% (with the kilo prefix) to over 20% (with the yotta prefix). This makes differentiating between the two increasingly important as larger and larger data storage and transmission technologies are developed.
|Name||Bin ÷ Dec||Dec ÷ Bin||Percentage difference|
|kilobyte||1.024||0.976||+2.4% or −2.3%|
|megabyte||1.049||0.954||+4.9% or −4.6%|
|gigabyte||1.074||0.931||+7.4% or −6.9%|
|terabyte||1.100||0.909||+10.0% or −9.1%|
|petabyte||1.126||0.888||+12.6% or −11.2%|
|exabyte||1.153||0.867||+15.3% or −13.3%|
|zettabyte||1.181||0.847||+18.1% or −15.3%|
|yottabyte||1.209||0.827||+20.9% or −17.3%|
Example: 300 GB (300×109 B) ≅ 279.4 GiB (279.4×10243 B)
In this section, the phrase "decimal unit" is used to denote "SI designation understood in its standard, decimal, power-of-1000 sense" and "binary unit" means "SI designation understood in its binary, power-of-1024 sense." The symbol B means byte as per computer-industry standard (IEEE 1541 and IEC 60027).
Certain units are always understood as decimal even in computing contexts. For example, hertz (Hz), which is used to measure clock rates of electronic components, and bit/s, used to measure bit rate. So a 1 GHz processor performs 1,000,000,000 clock ticks per second, a 128 kbit/s MP3 stream consumes 128,000 bits (16 kB, 15.625 KiB) per second, and a 1 Mbit/s Internet connection can transfer 1,000,000 bits (125 kB, approx 122 KiB) per second, assuming an 8-bit byte, and no overhead.
It is suggested that in English, the first syllable of the name of the binary-multiple prefix should be pronounced in the same way as the first syllable of the name of the corresponding SI prefix, and that the second syllable should be pronounced as "bee."
Prior to the release of Mac OS (1984), file sizes were typically reported by the operating system in decimal digits without prefixes of any sort. Today, most operating systems are capable of reporting file sizes with prefixes.
Measurements of most types of electronic memory such as RAM and ROM and Flash (large scale disk-like flash is sometimes an exception) are given in binary units, as they are made in power-of-two sizes. This is the most natural configuration for memory, as all combinations of their address lines map to a valid address, allowing easy aggregation into a larger contiguous block of memory.
JEDEC Solid State Technology Association, the semiconductor engineering standardization body of the Electronic Industries Alliance (EIA) in Standard 100B.01 continues to include definitions in the binary sense K, M and G as prefixes to units of semiconductor memory (see JEDEC memory standards), noting that these definitions are “only included to reflect common usage” and noting that ‘IEEE/ASTM SI 10-1997 states “This practice frequently leads to confusion and is deprecated.”’. All standards published by JEDEC use the common usage, including end-user packaging recommendations for memory chips.
Many computer programming tasks naturally reference memory in terms of powers of two. For example, a 16-bit pointer can reference at most 65,536 items (bytes, words, or other objects), or an operating system might map memory in terms of 4,096-byte pages, in which case exactly 8,192 pages could be allocated within 33,554,432 bytes of hardware memory. It is convenient to informally express these numbers, respectively, as 64K items, or as 8K pages of 4 Kbytes (KiB) each within 32 MBytes (MiB) of memory. A programmer can easily mentally calculate that "8K × 4K is 32 meg" and get it exactly right, within this powers-of-two context. This convenience is likely one source of originally adapting "kilo" and "mega" from SI as shorthand for 1,024 and 1,048,576, as specialized jargon within a segment of the industry.
Almost all computer user tasks (and many high-level programming tasks) have no natural affinity or need for explicit powers of two. The consumer confusion between powers of 1000 and powers of 1024 may derive largely from some operating systems and applications that were originally written by and for programmers, and which thus reported quantities such as file sizes in familiar (to programmers) powers of 1024 while using SI (powers of 1000) abbreviations. Without such reporting, most users might not have been substantially exposed to powers of 1024, as the net memory available to users after various overheads is rarely a power of two. This legacy behavior of operating systems reporting sizes in powers of 1024 has continued to this day (in 2008) even in many GUI oriented operating systems intended mainly for non-programmers.
As of January 2007, most, if not all, HDD manufacturers continue to use decimal prefixes to identify capacity.
USB Flash Drive and Flash-based memory cards like CompactFlash and Secure Digital are typically classified in "powers of two" multiples of decimal megabytes; for example, a "256 MB" card would hold 256 million bytes. Although the devices usually have at least the expected byte capacity, each manufacturer allocates different portions of the device's ultimate capacity for such things as wear levelling.
Floppy disk drive and media manufacturers use decimal units for unformatted recording capacity while most computer operating systems use binary units to measure the formatted capacity. The original IBM Personal Computer (1981) used a IBM Floppy Drive With DOS.jpg 5¼ inch floppy disk drive. The single sided drive was rated at 250 kilobytes (unformatted) and the double sided version was rated at 500 kilobytes.
A 5¼ inch diskette recorded at double density (MFM) will hold 6,250 bytes per track and has 40 tracks per side, yielding 250,000 bytes per side. To make it practical to record smaller blocks of data, the tracks are formatted into sectors with gaps between them. The gaps allow individual sectors to be recorded without overwriting adjacent sectors. Each sector also has additional header bytes to identify the sector.
With IBM PC-DOS 1.0 and 1.1, each track has 8 sectors of 512 bytes and this provides 163,840 bytes per side (8 × 512 × 40). The IBM user documentation referred to this as "160KB" for single sided diskette and "320KB" for double sided diskette. Starting with PC-DOS 2.0 (1983), each track had 9 sectors of 512 bytes. The formatted capacity was increased to 184,320 bytes per side or 368,640 bytes per diskette. The IBM documentation referred to these as "180KB" and "360KB" diskettes. The same drives and media can have different capacities depending on format.
On all diskettes the capacity available to the user will be smaller that the total number of sectors because some are reserved by the operating system for boot records or directory tables.
The IBM Personal Computer/AT (1984) had a new 5¼ inch disk drive that had 80 tracks per side, rotated at 360 rpm (versus 300 rpm) and had a new diskette media. The formatted capacity was 1,228,800 bytes or 1200 KB. (80 tracks × 15 sectors × 512 bytes × 2 sides)
The IBM PC Convertible (1986) used the 3½ inch diskettes. These were similar in recording technology to the original 5¼ inch drives except they had 80 tracks per side. The formatted capacity was 737,280 bytes or 720 KB. Apple used the same disk with a different recording technology, GCR, that gave a formatted capacity of 819,200 bytes or 800 KB. Apple referred to this as an "800K" disk.
The last widely adopted diskette was the 3½ inch high density. This has twice the capacity as the 720 KB diskettes, 1,474,560 bytes or 1440 KB. The drive was marketed as 1.44 MB when a more accurate value would have been 1.4 MB (1.40625 MB). Some users have noticed the missing 0.04 MB and both Apple and Microsoft have support bulletins referring to them as 1.4 MB. The 1200 KB 5¼ inch diskette was marketed as 1.2 MB (1.171875 MiB) without any controversy.
CD capacities are always given in binary units. A "700 MB" (or "80 minute") CD has a nominal capacity of about 700 MiB (approx 730 MB). However, the capacities of other optical disc storage media like DVD, Blu-ray Disc, HD DVD are given in decimal units. A "4.7 GB" DVD has a nominal capacity of about 4.38 GiB.
Bus clock speeds and therefore bandwidths are both given in decimal units. For example, "PC3200" memory on a double pumped bus, transferring 8 bytes per cycle running with a clock speed of 200 MHz = 200,000,000 cycles per second has a bandwidth of 200,000,000 × 2 × 8 = 3,200,000,000 B/s = 3.2 GB/s (about 2.98 GiB/s).
The binary convention is supported by standardization bodies and technical organizations such as IEEE, CIPM, NIST, and SAE. The new binary prefixes have also been adopted by the European Committee for Electrotechnical Standardization (CENELEC) as the harmonization document HD 60027-2:2003-03. This document will be adopted as a European standard.
Examples of software that use IEC standard prefixes (along with standard SI prefixes) include:
Note that one of the stated goals of the introduction of the binary prefixes was "to preserve the SI prefixes as unambiguous decimal multipliers." Programs such as fdisk/cfdisk, parted, and apt-get use SI prefixes with their decimal meaning.
These units have individual articles: