Confusion with storage capacity (powers of 10 and 2) [duplicate]

Solution 1:

The historical reason of using powers of 2 is that memory and hard disk are accessed by the CPU using an address space composed of lines on binary code. Hardware producers decided the names in this way:

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

For the normal user it is nonsense and cumbersome. In addition the prefixes "kilo", "mega", etc. come into conflict with the International System of Units (SI) standard where “1 kiloWatt” means 10^3 or 1000 Watts.

To solve the problem, in the year 2000 The International Electrotechnical Commission or IEC proposed a notation scheme for the units based in powers of 2 on the norm ISO/IEC 80000-13.

The new names were created by replacing the second syllable in the old name by ‘bi’ (referring to ‘2’). A kilobyte must be now a kibibyte and so on. The new units also got corresponding symbols, so ‘10 kibibyte’ is now written as 10 KiB instead of 10 kB. This is the correspondence table:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

16 years later a lot of hardware and software vendors still refer to the base-2 units with their SI names. A “megabyte” can mean either 1000000 bytes or 1048576 bytes.

If you buy a 100 GB hard drive, the capacity is 100x10^9 or 10^11 bytes. But, and this is the big but, the operating system will only report the drive as having a capacity of 93 GB (10^11)/(2^30). You bought a 100 gigabyte drive, which is equivalent to a 93 gibibyte drive. The operating system is the one that uses the wrong notation.

Drive manufacturers hide this issue with disclaimers and explanations that always lead to the conclusion that “actual formatted capacity may be less”.

Solution 2:

In short: it was all about marketing.

jcbermu explained well, but I don't agree to the reasons behind all of that.

While any informatics system uses the binary system, the bits & bytes are written as ^2, which is normal. So it's not the operating system or software at fault for the confusion. Everything is binary here.

It's the fault of HDD manufacturers to state the HDD capacities in ^10 system, which robs you of quite some practical GB. A 20GB HDD will actually be able to store 18GB and so forth...a 1TB drive will be actually of ~930GB. The 'bibyte' mockery was invented to try to prevent some of the confusion but it utterly failed to be practically adopted.