1

For as long as I can remember, Microsoft DOS and Windows have been displaying byte sizes with decimal prefixes, instead of binary prefixes. This has plagued at least two generations of computer users over the years. There must be at least A6 questions of the type "why is my X GB hard disk drive only showing Y GB?" on the web.

There is nothing wrong with using decimal prefixes to display byte sizes. Really! But when you use binary based size calculations and you prefix them with decimal prefixes, then it becomes a total wreckage!

Here is an example of what a 32 GB disk partition is displayed like in diskpart on Windows.

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Primary             29 GB  1024 KB

Is there a sane, logical reason for this? Why is Microsoft still keeping up with this bad practice in the latest Windows versions?

At very least, I think they should consider doing what Canonical is doing with Ubuntu Linux. They are using decimal prefixes, and decimal based calculations to display disk and file sizes. So in Ubuntu, a 500 GB disk will display as 500 GB. Bah oui! Voilá!

Here is what that same disk partition would be displayed like in parted in Ubuntu.

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.0GB  32.0GB  primary  fat32        lba

I would like to have a flipped version of the Ubuntu approach, where I have binary based size calculations and binary prefixes. How can this be done on Windows? Is there some hidden option or a registry hack for this? How about Linux?

Samir
  • 21,235

1 Answers1

1

I can give you a quick answer for KDE 4.13.3 under Kubuntu 14.04.2 LTS.
Search under:

System Settings  
   +---> Country/Region & Language   
     +---> Other
       +---> Byte Size and Unit  

You can choose among

  • IEC Unit (kiB,MiB,etc) e.g. 2000 bytes = 1.95 KiB
  • JEDEC Unit (KB,MB,etc) e.g. 2000 bytes = 1.95 KB
  • METRIC Unit (kB,MB,etc) e.g. 2000 bytes = 2.00 kB

I'm quite sure that you can find similar option on each other Desktop Environments...

Note: The exact difference arises from the difference between the "human" 103=1000 and the "logic" 210=1024...


Historical Note:
Vendors and Law: We have this kind of confusion because vendors behave following market's rules, when laws do not force them to do otherwise. I mean that to say this HDD is 4 GB sells better then to say it is 3.78 GB. For the same reasons the internet providers often speak about bps and let you understand Bps. There is a factor 8: a Byte(B) is 8 bits(b).

The problem is that the laws exist, but not in all the nations are the same.

The International System, or SI, is the most widely used in the world for commerce and science (It was published in 1960 and at present are partially out only USA that is adopting, Burma and Liberia).
It establishes not only the units of measurement but even the prefixes.

Since it is natural in the computer world the use of a numeric base in power of 2 (and not 10 as in human world) it was introduced in 1998 the system of the binary prefixes. Here directly the table. Nowadays we find in the situation that

the International Electrotechnical Commission (IEC) and several other standards
(NIST...) and trade organizations approved standards and recommendations 
for a new set of binary prefixes that refer unambiguously to powers of 1024

When you read 1GB it should be 1 000 000 Bytes,
instead when you read 1GiB it should be 1 073 741 824 Bytes.


Additional References

typo
  • 115
Hastur
  • 19,483
  • 9
  • 55
  • 99