1billion <> 1billion

By | 6 October 2010

A friend asked me why in one of my programs I am counting transferred bytes in KiB and MiB-s; why I am not using easy-for-read Kb, MB, GB prefixes we all are familiar with? And the answer is… because it is just NOT right! More detailed explanation after the jump:

http://lpar.ath0.com/2008/07/15/si-unit-prefixes-a-plea-for-sanity/

“Everyone knows that 1MB is 1024KB, unless you are talking about DVDs, or reading manufacturer specs for a hard drive, and that is just the hard drive manufacturers being stupid. Everyone knows that “K” on a computer means 1024; except for speeds, where it means 1000, except for file download speeds where it means 1024, except when it is the speed of your modem, when it is 1000. Everyone knows that. What, are you stupid?”

One thought on “1billion <> 1billion

  1. Keith Brown

    Kudos for helping to raise awareness of the MiB vs MB (etc.) question, however, I’d like to point out a few things.

    1. In your comment above you used “MiB-s” when you meant MiB/s. These are not the same! The ‘-’ is used to designate multiplications of scale units, e.g. as in n-m for torque.

    2. Also, and this is also implied in the quoted page, I think, the use of K for 1024 never was ambiguous as long as people used the proper SI prefix k (LOWER CASE) for 1000. It is just when megabytes became more common that there actually was a conflict since lower case ‘m’ is milli, so M “had to” mean both 1000 and 1024.

    3. I took a look your window shots for your program and one other thing is wrong in the middle one: you use Kbps for 1000 bits per second. Aside from the K vs k point already made, you should not be using the ‘p’ at all, it should be either kb/s or kbs-1. See the SI standard (http://www.bipm.org/utils/common/pdf/si_brochure_8_en.pdf) section 5.1. A common “error” to be sure.

    4. Another thing: does your program use the locale setting such that, e.g. 15,7 KiB would show as 15.7 KiB where such is the standard?

Leave a Reply

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


six × 7 =