For those of you who don’t know, and admittedly until 5 minutes ago I had no clue myself, there is a slight but somewhat important difference between Megabytes (MB) and Mebibytes (MiB). To make it even more interesting, the same distinction exists between Kilobytes (KB) and Kibibytes (KiB).
The mathematical explanation is simple:
- MiB = Mebibyte = 1024 KiB
- KiB = Kibibyte = 1024 Bytes
- MB = Megabyte = 1,000 KB
- KB = Kilobyte = 1,000 Bytes
A chart of the standard and the differences between power-of-2 and power-of-10 prefixes is noted on the NIST website.
While that may not seem like a big difference, it starts to add up QUICKLY when you start talking about today’s data storage capacities. This often makes for interesting comparisons in storage capacities or files sizes, as you’ll find in the Mebibyte Wikipedia Article.
For example, the operating system Windows XP shows a file of 220 bytes as “1.00 MB” in its file properties dialog, while showing a file of 106 (1,000,000) bytes as “976 KB”. Apple‘s Mac OS X 10.6, on the other hand, would report a 106 byte file correctly as “1 MB”.
The Path To MiB
So after all this, you may be asking what got me started down this path. Then again, you probably aren’t… but I’m going to tell you anyway. It was git. As I was cloning a multi-MiB repo today I noticed the counter showed MiB and KiB. I assumed that git was doing something unconventional and making up a new metric for downloads in 1,000 byte increments. Well it turns out that they are using the PROPER standards.
Way to go git. Now if we can just get everyone else in computer science to use proper abbreviations and terminology we might have just a few less computer problems to contend with!
So today I am a little smarter about computer terminology and will try to implement the RIGHT abbreviations when discussing file sizes or data transfer rates. My use of MiB and KiB may throw some people off, but when it does I’ll have an opportunity to show them the RIGHT terminology for the measurements on which our trade depends.