Computers work in powers of two. This is because everything in a computer (well possibly not quite everything) is stored as 1s and 0s. As a result, any large numbers used in computers were generally expressed as powers of 2, the most notable is 210 = 1,024. This was close to 1,000 so it gained the metric prefix for 1000, kilo
. This allowed people to think of 1 kilobyte as “about 1000 bytes” - The difference was only 2.4% Of course as the prefixes got bigger, the differences got bigger. 1 megabyte is 1,048,576 bytes, off by 4.9%. Go all the way to a terabyte and you’re off by almost 10%.
10% is noticeable. The place you’ll notice is when you buy a hard drive. Hard drive manufacturers advertising using true metric prefixes (so 1 megabyte is 1,000,000 bytes). Windows on the other hand still reports in binary meaning the number on the box is smaller than the number you get. In fact Iomega used to put a warning saying so on their Zip drives: “1 megabyte = 1,000,000 bytes. The amount reported by your operating system may differ”.
A solution was found, although it has own problems. Amendment 2 to IEC 60027-2 was published that standardised the metric prefixes to have whole metric meanings when referring to computer data. The binary versions would be given new names with “bi” in the middle for “binary”.
This meant 1024 bytes would become a kibibyte - kilo binary byte. Well my first reaction is they sound awful. There is another problem that 1024 bits is a kibibit - kilo binary bit. This is ridiculous since a bit is binary digit (kilo binary binary digit?). Aesthetics aside they would solve the problems and I think would be a good thing for the average consumer since k
not meaning 1000 is just confusing. Except of course their use is wildly inconsistent - so much so to render the exercise pointless.
Windows doesn’t not use the new notation for binary prefixes, memory manufacturers (RAM) don’t use it. Storage manufacturers use the new notation for metric prefixes. Random people on the internet occasionally use the new notation for binary but most don’t.
There are other issues with the system overall that add to the confusion. Metric prefixes are in lower cases for small magnitudes and capitals for large magnitudes. Except for k
* which has mysteriously stayed lowercase. You should use kg, not Kg for kilogram for instance. Except they’ve decided the symbol for kibibyte should be KiB.
And then there are floppy disks. How much data can a floppy disk hold? 1.44Mb of course. But what kind of megabytes? If you said a binary one thinking that they’re old, you’d be wrong. If you said a metric one thinking they want to overquote their size, you’d also mysteriously be wrong. The truth is the 1.44Mb on a floppy disk is to prefixes what “television” is to classicists.** The actual capacity of a HD floppy is 1,474,560 bytes. Using “official” notation this is 1.474560 MB or 1.40625 MiB. So where did they get 1.44 from? Well 1,474,560 is actually equal to 1440 KiB (1,440 old kilobytes). In case that confuses you too much that means they used both style of prefixes, at once.** It almost makes sense. You could use the odd notation of 1.44 kKiB (1.44 * 1000 * 1024 bytes) but they just figured that two k
s make an M
. Well they do, but a k
and a Ki
don’t.
* Okay, technically hecto (h) and deca (da) are also in lower case but don’t think of using them in computers. daB = 8 bytes? hB = 128 bytes?
** A classicist is someone who studies “the classics”. That would be ancient Greece and Rome (and therefore ancient Greek and Latin). Television is made of two words, “tele” meaning “far” and “visus” meaning “vision”. The problem is that “tele” is Greek and “visus” is Latin. Incidentally, a pure Greek for “far seeing” could be “telescope” and “ultravision” is fairly close for Latin.