2

I have a file that is 237153620 bytes long. Interestingly, Finder shows it as 237.2 MB. But we all know that's not true. Obviously it divides size in bytes with factor of 1000 (base 10) to get size in megabytes, instead of 1024 (base 2). Why is this so?

Some screenshots:

Finder:

Terminal:

Edit: It was mentioned that switchDiskSizeBase could be used to switch between base 10 and base 2 file size, but it seems broken in El Capitan. (code sign failed when launching) Any idea on alternatives?

  • 1
    Why Apple switched to using base 10 to show file sizes in Finder is up to them to explain. If you want to see both base 2 and base 10 file sizes in Finder you can use switchDiskSizeBase to do so. Command line utilities still show values in base 2. Somewhere I read they switched to base 10 because the HDD manufactures rate the devices in base 10 values, however that wasn't an official Apple statement IIRC. BTW This is an old issue going back many years so Google might provide additional information. – user3439894 Jun 7 '16 at 12:43
  • 1
    It’s not a bug, Finder uses base 10 as has done for a while (since 10.6, I think). Presumably it’s because HDs are also sold in base 10 and they thought people would be confused when their 1TB HD reported its size as 950GB? Further, it could be argued that base 10 for KB/MB/GB... is correct and base 2 sizes are KiB/MiB/GiB – Dan Jun 7 '16 at 12:49
  • Well, well, I didn't notice such difference LOL – Chung Lun Yuen Jun 7 '16 at 13:04
  • @Dan, Since the beginning days of computing base 2 values used KB/MB... etc. after the numeric value, not saying it was right... just how it was done. The fact that HDD manufactures spec the storage capacities in base 10 when information is stored using a base 2 system is absurd. What should have ben done is changing KB/MB/GB... to KiB/MiB/GiB to reflect the accurate use of base 2 values not switching to base 10 when nothing it actually stored in base 10 as it is a binary system after all. – user3439894 Jun 7 '16 at 13:04
  • Exactly. I don't understand why base 10 is used as well, it's so confusing. Btw, was trying the switchDiskSizeBase app just now, but code sign test failed. Any idea? – Chung Lun Yuen Jun 7 '16 at 13:09
2

This is not a bug, so there is nothing to fix. Apple (and pretty much every other computer company) moved over to base 10 to avoid confusion with the standards that we have with the metric system.

In metric:
    10 mm   = 1 centimeter
    1000 cm = 1 meter
    1000 m  = 1 kilometer
In base 2:
    1 byte  = 8 bits
    1 KB    = 1024 bytes
    1 MB    = 1024 kilobyte or 10242 = 1,048,576

So, in pretty much every other industry "Mega" meant 1 million of something, in computers it meant "1 million and 48 thousand, five hundred seventy six of something"

It wasn't until around 1998 that the IEC, IEEE and other standards organization wanted to address this ambiguity. They clarified it by coming up with the "binary prefix" for the unit symbol.

1 Kilobyte = 1,000 bytes.
1 Kibibyte = 1,024 bytes

Binary Prefix

This was done for the sole purpose of making things easier to understand as they related to computers.

It's very easy to understand (using your file example) that you have a

  • 0.237MB file
  • 237.2KB file
  • 2,272KB file

I don't have to break out a calculator to to do base 2 conversion. It's very easy for me to understand that my 1/2 TB hard drive is 500GB and not 465.66GB

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .