Friday, August 3, 2007

SI Prefixes and Prefixes for Binary Multiples

A flaming article on Macenstein about the use of GB in describing hard disk sizes and the resultant frenzy at Digg shows the lack of understanding of standards amongst most people. This post is to clear the air.

The computer world (especially memory manufacturers and software developers) have "always" used the prefixes kilo to represent 210, mega to represent 220, and so on. However hard disk drive (HDD) manufacturers use kilo to represent 103, mega to represent 106, and so on. The article claims that this misleading advertising by the HDD manufactures since one purchases a 1 GB HDD expecting (210)3 bytes (1 073 741 824 bytes) but only gets 109 bytes (1 000 000 000 bytes). Most operating systems uses powers-of-2 for the prefixes and will report that HDD as being 0.931322575 GB (from 1 000 000 000 / 1024 / 1024 / 1024). This is being viewed as HDD manufacturers over-reporting HDD sizes by more than 7%.

So what is going on and who is "right"?

The International System of Units (SI) has defined standard names for prefixes for over a century. The prefix kilo is defined to be 103, mega is 106, etc. This is the standard.

The confusion is due to the fact that the computer world - memory makers and operating systems - decided to reuse the same prefix names for 210, 220, etc., in violation of the SI standards. In order to alleviate this confusion, since November 2000, the International Electrotechnical Commission (IEC) has defined standard prefixes for binary multiples. The prefix kibi is 210, mebi is 220, and so on.

So the HDD manufacturers are the ones who are adhering to the SI standards. That 1 GB drive is 1 000 000 000 B and the operating system should be reporting it as 0.931322575 GiB a different unit from GB. One can only hope that operating systems and memory manufacturers start using the IEC standard for binary multiples.

It's interesting to note that the Google Calculator propagates the nonstandard prefixes. For example, it reports 1 gigabyte as 1 073 741 824 bytes.

Technorati Tags: , , ,