Megabytes (MB) or Mebibytes (MiB)?
An anonymous reader says: "KernelTrap has an interesting story about megabytes versus mebibytes. Though the article refers to Linux, the topic is applicable to all computers. Will there be a time when all computer users will talk about adding mibibytes of RAM, rather than a megabytes?
From the article: '[the kernel patch] changes references from the familiar MB (megabyte) and GB (gigabyte) to the NIST standard MiB (mebibyte) and GiB (gibibyte). According to these standards, technically a megabyte (MB) is a power of ten, while a mebibyte (MiB) is a power of two, appropriate for binary machines. A megabyte is then 1,000,000 bytes. A mebibyte is the actual 1,048,576 bytes that most intend.'"
Why is this an issue? Everyone already knows kilo = 1000, so kilobyte = 1000 bytes. Only geeks work in base 2, so only geeks need to know kibi = 1024.
BTW, if you can't remember what the prefix is, remember: first two letters of the SI unit, then 'bi' for binary. A kilo-binary-byte = Kibibyte.
1. A megabyte is 1,048,576 bytes. Always has been, always will be. It is a unit of measurement specific to its science, like the Mole is to Chemistry, and like the Newton is to Physics. It is not meant to be a general metric measurement, in other words, a megabyte isn't 1,000,000 anymore than a "dozen" is 10. Ever since the term was coined, it has meant that value, specifically. Anyone who tells you otherwise is trying to sell you something, namely marketing idiots who are responsible for great advancements in human culture like MTV and the Home Shopping Network.
2. By accepting this "mebibytes" crap, you're allowing marketing people to revise history. The number 1,048,576 is an important value in Computer Science, similar to 8, 256, 1024, and other commonly-used powers of 2. An understanding of the powers of 2 is integral to having an understanding of the underlying principles that form the foundation of this discipline. If you cant think in anything but base 10, you should consider a different line of work, as most computer scientists have no problem thinking in terms of binary, octal, hexidecimal and otherwise. A failure to understand the basic nature of the device you intend on working with for the rest of your career is tantamount to unprofessionalism and neglect. After all, you can't be expected to code competently by using incorrect measurements any more than a carpenter can be expected to build a house competently if his tape measure is made out of elastic rubber.
3. Its just plain stupid. A megabyte is a megabyte. Its not less than a megabyte, or more than a megabyte. If you for some reason feel the need to apply a term to "1,000,000" an essentially meaningless number in terms of the machine, we already have a word for it. Its called "million", as in "a million bytes." Call a spade a spade. A megabyte is 1,048,576. A million bytes is 1,000,000 bytes. They are not equal, and never will be.
Bowie J. Poag