Since 2^10 = 1024, and 10^3 = 1000, this led to the SI prefix letters being used approximately (and wrongly) to denote "binary" prefixes as follows:
Kilo = 2^10 = 1,024
Mega = 2^20 = 1,048,576
Giga = 2^30 = 1,073,741,824
Terra= 2^40 = 1,099,511,627,776
Peta = 2^50 = 1,125,899,906,842,624.
However, these prefixes usually retain their powers-of-1000 meanings when used to describe rates of data communication (bit rates): 10 Mb/s Ethernet runs at 10,000,000 b/s, not 10,485,760 b/s.
These inconsistencies can lead to simple errors in calculations, making the whole system of "binary" prefixes fraught with problems. For example, 64 "binary kilobytes" = 65536 bytes, which is more than 65 decimal kilobytes, resulting in the potential for an error of 1536 bytes: as the prefixes get bigger, the potential for confusion grows further.
Accordingly, the International Electrotechnical Commission adopted new binary prefixes in 1998, formed from the first syllable of the decimal prefix plus 'bi' (pronounced 'bee'). The symbol is the decimal symbol plus 'i'. So now, one kilobyte (1 kB) equals 1000 bytes, whereas one kibibyte (1 KiB) equals 2^10 = 1024 bytes. For example, at 1 MB/s = 10^6 bytes per second, it would take slightly longer than one second to transfer an object 1 MiB = 2^20 bytes in size. The adoption of these prefixes has been very limited.
The IEC standard prefixes are as follows:
Code:
kibibyte Ki 2^10 = 1024
mebibyte Mi 2^20 = 1 048 576
gibibyte Gi 2^30 = 1 073 741 824
tebibyte Ti 2^40 = 1 099 511 627 776
pebibyte Pi 2^50 = 1 125 899 906 842 624
exbibyte Ei 2^60 = 1 152 921 504 606 846 976
Of course, it makes sense that yebi and zebi will be made official soon:
Code:
zebibyte Zi 2^70 = 1 180 591 620 717 411 303 424
yobibyte Yi 2^80 = 1 208 925 819 614 629 174 706 176
(Thanks Wikipedia)