MiB vs MB- Whats the Difference?

You may have wondered why we use the notation MiB, MB, GiB, and GB to represent the capacity of an on-board memory device. For example the Genesys 2 has 1 GiB of DDR3 memory while the Nexys Video has 512 MB of DDR3 memory. The mixed use of the notations may frustrate you but this post aims to quell any distress you may have about this topic.NexysVideoAndGenesys2

The SI prefixes are for strict use with powers of 10, not powers of 2 as used by computers. To solve this the International Electrotechnical Commission (IEC) came up with a new prefix standard for powers of 2, known as binary prefixes. The solution was to add an “i” between the initial letter and the “B”. Full prefixes were also defined. As per the specification of the prefixes, the power of 2 prefix counterpart to Kilo- is Kibi-. The prefix Kilo- stands for 10^3 while Kibi- stands for 2^10. This means that a Kilobyte is 1000 bytes while a Kibibyte is 1024 bytes. This might not seem like a big difference but when it gets to Gigabytes versus Gibibytes the difference becomes much more noticeable. The full prefix chart is in the image below.

IEC_tables
Prefix Tables

From the table, one can see that a Gibibyte is 1,073,741,824 bytes or 73,741,824 bytes more than a Gigabyte so the Genesys 2 has 1.073 GB of DDR. Also the 512 MiB on the Nexys Video can be converted to 536 MB. Since the memory world has yet to convert to the newer, more accurate notation, Digilent uses MB and MiB interchangeably. So if you see MB on any of our sites and are confused, keep in mind it means the same thing as MiB. If you find yourself questioning any of the notations or units that we use, feel free to contact us through the forum.

Unlock the limitless possibilities of digital design and programming by exploring Digilent’s FPGA boards, where creativity and innovation have no bounds.

Author

21 Comments on “MiB vs MB- Whats the Difference?”

  1. >Also the 512 MiB on the Nexys Video can be converted to 536 MB. Since the memory world has yet to convert to the newer, more accurate notation,

    This is absurd, computers work in binary, bits have 2 states, so powers of two are the way computers work. Memory has always been sized correctly, in MB. The problem is only with disks, where manufacturers use metric prefixes inappropriately. Disk manufacturers were sued for this in 2005, but the lawsuit was settled out of court and nothing has changed.

    Memory sizes are correct, if you convert you’ll get a number that does not mean anything.

    1. Hi Rich,

      I agree that the phrase “newer, more accurate notation” is misleading, though I do have to put in the disclaimer that this was the opinion of the blog post author, rather than the official opinion of Digilent. Perhaps a better phrase of choice would have been “more consistent”, though at the very least it is not a newer notation.

      I agree that the memory sizes are correct as is; the goal of this post (as my understanding of the authors original intention), was to let people new to world of computers, memory, and the base 2 number system, that “MB” and “GB” have a different meaning than 1000 Bytes and 1000000 Bytes, and that we as Digilent try to make that clear to all of our audience.

  2. I’m a clever bloke but I didn’t understand that. It just added more technical language to the problem. What’s an “SI” for example?
    All I understood was the last sentence “So if you see MB on any of our sites and are confused, keep in mind it means the same thing as MiB.”
    Reduce it to its simplest ideas, then pad it out if you have to with technical language.

    1. Hi J Jones,

      “SI” is short-hand for the International System of Units, which is the over-arching and proper term for the metric system. It does cover a lot more types of measurements than what the normal metric system refers to (mass and length), including time, luminescence, temperature, electrical current, along with a number of other things.

      However, the size of memory isn’t part of the Internal System of Units, and because memory (and computers) use a base 2 number system rather than a base 10 number system like we people and the metric system use, there can be some confusion about the meaning of the prefixes used, especially when the metric system prefixes are so widely used.

      So, the purpose of this blog post was to help show that if we (Digilent) used the phrase “MB” when referring to memory size, we meant the base 2 version of megabytes (MB) rather than the metric version of 1000 bytes.

      Let me know if you have any questions about this.

      Thanks,
      James Colvin

    1. Hi JJ,

      I responded to your other post. Your post didn’t vanish before, we (Digilent) just manually approve all of the blog post responses first as an effort to cut down spam posts.

  3. I found the chart to be very helpful. The article was too. The only problem was at the end where the you said “So if you see MB on any of our sites and are confused, keep in mind it means the same thing as MiB. ” That is the reason people are confused. They are not the same and accuracy is required. Terminology should be accurate and clear. Study base 2 vs, base 10 and use the correct terminology.

  4. I don’t understand one thing that everything we purchased like HDD is in GiB not in GB so if i purchased 512GB hard-disk so it means my hard-disk 512GiB or 512GB?

    1. Hi! Which product are you referring to in specific? I believe all of our products are listed correctly – if it says GB, you’re getting GB, and if it says GiB, you should expect GiB. Thanks!

  5. Actually, this whole mebi, gibi etc nonsense has made the whole issue way more confusing.
    Back in the day (70s) when I was taught correctly about computers there was none of this confusion and as time went on we understood that hard drive manufacturers were ripping us off by using ‘decimal’ gigabytes i.e multiples of 1000 instead of the correct multiples of 1024. We understood this exception for what it was YET we continued to understand that computers are BINARY and use powers of 2 EVEN with the rip-off exception from HDD manufacturers.
    Oh and yes, we also realised that transmission speed unlike filesize and RAM was using the digital way and 1 Kbit a second is equal to 1000 bits per second AND YET we continued to understand that computers are BINARY and kilobytes, megabytes, gigabytes etc were AND ARE multiples of 1024.
    THERE WAS NO CONFUSION !
    Now it’s a complete and utter dogs breakfast with people using mebi, gebi etc to describe RAM size and HDD size !?!!??!!?

    I implore everyone to stop giving this ridiculous mebi, gebi garbage the time of day !

    1. don’t know much about the particulars, but seems the hard drive manufacturers have taken advantage of the (strictly correct) definition of kilobyte, etc. In SI, a kilobyte=1000 bytes, and that is what they are giving you. The error was in the traditional (mis)use of the term kilobyte to mean 1024 bytes. As is often the case in the world of computing, people use language imprecisely, overload terms, etc. In hindsight, 1024 bytes never should have been called a “kilobyte”, it should have been called something else, but people were a little lazy about, I think. As is often the case, this initial inaccuracy led to later confusion and different interpretations. So I don’t think the problem say with the hard drive manufacturers per se, even if they selectively chose to interpret “kilobyte” literally for their own advantage.

      1. Dean, I agree but we could say we were using shorthand as well as being lazy. Initially, only tech people talked about kilobytes and everyone understood it meant 1024 x 8 bits. Then came the PC era. But I cannot see myself saying back then, I just upgraded from 256 kibibytes to 1 mebi.

  6. if in calculating memory any one uses second table which is the standard and can give roundoff result , that might be coming around the answer with SI , will that be correct or not.

    1. @Alok
      In keeping with what the OP was TRYING to say he should not have said 512MB, he meant to say 512MiB but he mixed terminology and that supports my case that the ‘new’ table 1 just adds confusion.

      The best way, the traditional and tech way (if you are over 30 and were taught computing correctly), is to totally ignore the second table but in the first table replace the symbols KiB with KB, MiB with MB, GiB with GB etc and then EVERYONE will be on the same page, including us (me) computing dinosaurs, just like it used to be 😉

      1 Bit (Binary Digit)
      1 Byte = 8 Bits
      1 KB (Kilobyte) = 1024 Bytes or 1024 x 8 Bits
      1 MB (Megabyte) = 1024 KB (Kilobyte) or 1024 x 1024 Bytes
      so 512MB = 512 x 1024 KB or 512 x 1024 x 1024 Bytes = 536870912 Bytes

      I see MiB and think to myself, ‘modern people spelling Megabyte (MB) incorrectly again’ !

      “Since the memory world has yet to convert to the newer, more accurate notation, Digilent uses MB and MiB interchangeably. ”

      Wow, that’s not going to add confusion now is it /s
      No, it is not more accurate, all that has occurred is that the SI people have substituted symbols (KiB for KB, MiB for MB, GiB for GB etc) BUT then tried to redesignate the original symbols (KB, MB, GB etc) to mean something else to essential protect lying hard disk manufacturers and to come into line with weights (Kg, Mg (oh that’s right there is no Megagram ! ha)) and measures (Km, Mm (oh that’s right there is no Megametre ! ha again !)).

      Absolutely ridiculous and a complete waste of time and a way to confuse (modern people) and annoy those of us who know better (people in computing older than 30 odd years old).

      Hope that clears it up for you 😀

      1. In the SI system, mega, kilo, giga and other do exist for all type of measurement, they just mean the power of ten to put.

        Megametre or megagram are totally valid, just that they are really big number and not things we use every day.

        But there is one thing that is really important. You don’t write kilogram as Kg, but kg, all the size related letter is in lower case unlike when we are using them in computer science: KB, MB, GB, and funnily enough, we do make the difference between KB and Kb, the first being kilobyte (1024 bytes), the second kilobit (1024 bits)

        The fact the prefix is always set in the short form as upper case should be more than enough to differentiate from the SI 1 kilo == 1000 meaning.

      2. Small mistake, but can’t edit (really need to write only when my mind is clear) some of the size prefix are in upper case, mega is one (M-) , to not be mistaken with mili (m-) but kilo is in lower case.

        Wikipedia have a nice table with all the prefixes:

        https://en.wikipedia.org/wiki/Mega-

        including the smaller than 1 ones (mili, micro, pico, femto, and smaller)

  7. hi…
    second table which is the standard and can give roundoff result , that might be coming around the answer with SI , will that be correct or not.

  8. so someone decided to use prefix Ki instead of ki? I guess it’s consitent within the new terminology and convenient when you only care about storage. In SI world you need to remember that KBkBKbkb so KiB is equivalent to kB not KB and most certainly not Kb or kb 🙂

Leave a Reply to Some Person on the Internet Cancel reply

Your email address will not be published. Required fields are marked *