Through transferring data on computers more than anything else, we have learned prefixes such as "kilo", "mega", and "giga" meaning "thousand of", "million of", and "billion of" (or "milliard of" if you're an old-timey Englishman)
Similarly, as metric measurements creep into our collective consciousness, we have become aware of the prefixes that denote small fractions such as "milli", "micro", and "nano" meaning "thousandth of a", "millionth of a", and "billionth of a"
What strikes me is that the prefixes seem to enter common parlance in symmetry. People began using "mega" (million) in casual conversation when I was a kid to mean something really big or striking e.g. "mega-awesome" and at the same time began using "micro" (millionth) to refer to something really fast e.g. "micro-second". And perhaps ten years ago the terms "giga" (billion) and "nano" (billionth) became more widely used particularly because of familiarity with gigabytes and nanotechnology. (most of us first heard the prefix "giga" when Doc Brown screeched about the "one point twenty-one gigawatts" needed to power the flux capacitor, back in 1985, during the brief period when "giga" was pronounced with a soft "g")
If the pattern continues, "tera" (trillion) and "pico" (trillionth) will become mainstream slang terms at the same time. Children in five years will say something is very impressive by calling it "tera-cool" and say something is very fast by claiming it moved a great distance in a "pico-second". And five or ten years after that children will be talking about "peta" and "femto" and then "exa" and "atto".
After that, the terms get slightly more strange. "zetta-" (sextillion, a '1' with 21 zeroes after it) "zapto-" (sextillionth), "yotta-" (septillion), and "yocto-" (septillionth).
These prefixes apply to units of mass ("kilogram"), volume ("microliter"), length ("gigameter", a billion meters, about the distance between the Sun and Saturn), and time ("picosecond", 0.000000000001 seconds).
But they don't really apply to computers, even though that is when we use them most often. All the terms above, and almost all human numeracy in general, relies on base 10 counting, where the digits "roll over" every ten numbers. If we had evolved to have 12 fingers, perhaps we would have a base 12 counting system. Computers are fundamentally base 2 systems. The elemental parts of a computer cannot count to ten, they can only be on or off, and thus count only to 1 - if the bit ("BInary digIT") is off, the count is zero. If it is on the count is one. By aggregating bits we can add up their values and represent larger numbers.
But because the bits are limited to only two values, the system is a base 2 system. A set of 3 bits can represent a total of 8 different states, or values. That is, 23 = 8. Three bits equals eight.
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128
28 = 256
29 = 512
210 = 1,024
Eight bits can represent 256 values and this is commonly called a "byte". A bit can represent only two values. A byte can represent any of 256 values. When typing, each character (letter, number, symbol) is represented by one byte. In plain text, a message with 1,000 letters and spaces and punctuation marks is 1,000 bytes, or 1 kilobyte in size.
Ten bytes equals 1,024 (210 = 1024). This is close to 1,000 so we call this a kilobyte, even though a true kilobyte would be exactly 1,000 bytes. Similarly, a megabyte (220) is actually 1,048,576 bytes, not an even million.
This is not a resolved issue, and sometimes causes problems when the stated capacity of hardware is ambiguous. A proposed solution is to create a new class of prefixes that refer specifically to base-2 counting and computers. The prefixes, for some reason, are all two syllables, where the second syllable is "bi" (pronounced "bee")
In the proposed system:
1 kilobyte = 1,000 bytes kibibyte = 1,024 bytes
1 megabyte = 1,000,000 bytes 1 mebibyte = 1,048,576 bytes
1 gigabyte = 109 1 gibibyte = 230
1 terabyte = 1012 1 tebibyte = 240
1 petabyte = 1015 1 pebibyte = 250
etc.
I have a feeling this won't catch on. Partly because there seems to be an overabundance of naming conventions as it is, but mostly because "gibibyte" is such a silly word.