Many of us must have noticed that the OS doesn't show the same size as labeled on the Hard disk. For example, if you purchase a 500 GB hard disk, OS will show it as ~465 GB. Where has this remaining space ~35Gb gone? Some people may say OS uses it for its internal work or for portioning/formatting. But that's completely incorrect.
The size difference is because of the calculation of MB/GB by Hard disk manufactures differs from the OS/software makers. The Hard Disk manufacturer follows SI decimal prefixes as mentioned below:
kilobyte (kB) 1,000
Megabyte (MB) 1,000 * 1,000
Gigabyte (MB) 1,000 * 1,000 * 1,000
However, OS/software makers consider the same as below:
kilobyte (kB) 1,024
Megabyte (MB) 1,024 * 1,024
Gigabyte (MB) 1,024 * 1,024 * 1,024
Similarly, the confusion in the meaning of megabyte was evident for many years. For instance, the 1.44 MB floppy disk's storage capacity was calculated using 1024000 bytes per "MB" (i.e. 1.44×1024×1000), rather than 1.47 MB (1.47×1000×1000) or 1.40 MiB (1.40×1024×1024).
Because of these calculation differences, we notice the big difference in size. For example, if 500 GB is labeled on hard disk, it means 500 GB in SI unit. I.e. 500 Gb = 500 * 1000 * 1000 * 1000 Bytes. Thus manufacturer gave you the hard disk of 500 * 1000 * 1000 * 1000 Bytes. The OS will show it as ~465 [ (500 * 1000 * 1000 * 100) / (1024 * 1024 * 1024) ] GB. So the disk space is not going anywhere utilized. It is getting miscalculated :).
In order to avoid this confusion, ICE in December 1998 presented a IEC binary prefixes as mentioned below:
kibilobyte (kiB) 1,024
Mebigabyte (MiB) 1,024 * 1,024
Gibigabyte (MiB) 1,024 * 1,024 * 1,024
Its use is presently accepted by the Institute of Electrical and Electronics Engineers (IEEE) and the International Committee for Weights and Measures (CIPM). OS and software should start using these prefix correctly to avoid such confusions. I have seen several software like FileZilla FTP client have started using MiB/GiB prefixes.