Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

From all the hard drives I have bought, they never seem to be as large as the advertised price; from 320GB down to 290GB, from 500GB down to 450GB, etc. Is there a technical reason for this?

share|improve this question
2  
The nontechnical reason, of course, is that the manufacturers will put as large a number as they can possibly justify on the box, to drive sales. It's similar to ads with small print "up to"s on the capabilities and "starting at"s for the prices. –  David Thornley Dec 10 '09 at 15:13
3  
Your drives are as large as advertised. The operating system just measures them wrong. –  endolith Sep 4 '10 at 20:03
1  
Don't forget that a drive is always specified as unformatted size, and, when formatted, there will be less space available due to format tables, page substitution tables, and the like. –  Daniel R Hicks May 24 at 11:41
    
(But the 16G stick I have plugged in right now has 16,000,761,856 bytes total, according to Properties.) –  Daniel R Hicks May 24 at 11:44

8 Answers 8

up vote 19 down vote accepted

The technical reason is that the hard drive manufacturers sell you capacities in metric units. So a GB = 1,000,000,000 bytes by the metric system. However, computers measure the drive size in powers of 2. So 1GiB = 1,024MiB, 1MiB = 1,024KiB, etc. What this means is that 1GiB = 1,073,741,824 bytes, a difference of 73,741,824.

So when you install your 1GB (for the sake of example) drive, the OS only sees 0.93GiB, and this is the cause of the discrepancy.

(If you've never seen the abbreviation GiB before, it's a new notation adopted to denote powers of 1024 as opposed to 1000. However, most operating systems will report GiB as GB, confusing this issue even further)

share|improve this answer
4  
Gi => Gibi rather than G => Giga –  ChrisF Jul 15 '09 at 9:12
    
@ChrisF: yep, I added an addendum to my post explaining that –  Kyle Cronin Jul 15 '09 at 9:13
7  
And don't get me started on the old "1.44Mb" floppy disks. These were actually made out of 1440 * 1024 bytes, using both the 1000 and 1024 measure simultaneously. It wasn't neither MiB nor MB –  R. Martinho Fernandes Jul 15 '09 at 9:35
    
Wikipedia has a writeup and chart showing the differences en.wikipedia.org/wiki/Hard_disk_drive#Capacity_measurements –  Chris Nava Dec 10 '09 at 15:39
    
Apple recently changed the display of disk sizes within MacOSX to use metric values. –  Chris Nava Dec 10 '09 at 15:44

Originally this was the answer to this question (merged) about 4GB pen drive.

Let's we start from the statement: "Human system is based on power of 10, binary on on power of 2"
What it follows can give a first answer to your question.

The metric prefixes are power of 10, 1000 or 10^3 is k, 10^6 is M, 10^9 G...
The binary prefixes are power of 2 ( 2^10 = 1024 not so far from 1000 but different, 2.4%).

4000000000/1024/1024/1024  Your 4GB are 4 000 000 000 Bytes
3.72529029846191406250     That becames around 3.73 GiB 

Vendors and Law: Vendors behave following market's rules, when laws do not force them to do otherwise. 4 sells better then 3.78. 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.

Why still should be and not is? Because it depends from how the legislator of the nation in which is produced the item and the legislator of the nation in which the item is imported adopt and transform in law the directive of the international commissions.

So keep your eyes well open.

(Even because in several nations it is prescribed to write the informations to fulfill the duties of law on an adhesive label. Usually it is so little than you really need to keep well open your eyes to read read it)


Additional References

share|improve this answer

In the old days of computers every calculation was expensive (in the performance sense). Programmers used all kind of shortcuts to do as little calculations as possible. One of those tricks was to store the year part of a date as only two digits, which ultimately led to the y2k problem. Another trick was that they defined 1k (kilo) to not mean 1000 as everyone else in the civilised world did, but to mean 1024 instead. This allowed them to cut a few corners when doing size calculations. That habit stuck and is still being used today although computer calculations have become so much cheaper.

The hardware manufacturer is giving you the proper size where K=1000, M=1000000 and G=1000000000. It's the software that's giving you false values.

Software manufacturers are changing their habits nowadays. OSX for example shows the proper size.

share|improve this answer
    
Good to know that they are starting to change. –  09stephenb May 24 at 11:39
4  
I do not think it is correct to attribute the power-of-two-habit to cutting corners. For example, the MBR HD size limit of 2.2 TB (2 TiB) is not at 2.2 TB because someone today (or in the past) cut corners, but because it still nowadays makes sense to use binary format for adresses, and 2^32 512 byte blocks mean 2.2*10^12 bytes. (This also means that it is completely pointless to sell flash drives in sizes that look like powers of two - 4GB, 512GB - because the actual number of bytes is not really near a power of two.) –  arne.b May 24 at 12:16
1  
I think you've got the wrong end of the stick... Using SI magnitude units allows the manufacturers to reach what they call "2GB" more cheaply with less hardware... –  Basic May 24 at 12:24
    
Relevant - superuser.com/q/287375/8972 –  paradroid May 24 at 12:29
2  
Hard disk and networking tends to use the decimal units and memory related values use binary. –  paradroid May 24 at 12:30

It's because hardware vendors are not selling 4GB but 4 000 000 000 bytes.

4 000 000 000 / (1024^3) = 3.72 GB.

Same story with hard drive disks.

share|improve this answer
1  
Thats bad really because 4,000,000,000 isn't a GB. –  09stephenb May 24 at 11:13
    
Actually, it is. They're using SI prefixes. –  Daniel B May 24 at 11:18
    
True, and that confuses people because most operating systems mean GiB when they display "gigabyte" or "GB". –  Christophe C May 24 at 11:28

See this article for an explanation.

Basically, there are two definitions of a "gigabyte". One definition is that 1GB = 10243 bytes. This is the definition that the computer reports (for technical reasons).

The other definition (from SI units) is that 1GB = 10003 bytes. This is the same as every other metric unit ( 1 gigameter = 10003 meters).

Since the metric definition of a gigabyte is less than what the computer considers a gigabyte, hard drive manufacturers use the metric definition because they can print a larger capacity on the box.

A small amount of space is also used by the file system itself, but most of the missing capacity is from the definition of a gigabyte.

share|improve this answer

When a drive manufacturer creates a 500 GB capacity drive, it does have a capacity of 500,000,000,000 bytes, and they are sure going to advertise it as such. Computers, being binary devices, prefer powers of two, with a different set of prefixes, so that is what they use for storage space measurement:

1 kibibyte = 2^10, 1 mebibyte = 2^20, 1 gibibyte = 2^30, etc.

For instance, I have a 300 GB drive attached to this machine and Windows displays the following for the capacity:

Capacity:          300,082,855,936     279 GB

300,082,855,936 / 2^30 = ~279. What it is actually showing you is the drive's size in gibibytes, not gigabytes. So, it should read:

Capacity:          300,082,855,936     279 Gi

One might say this is a flaw in Windows, but apparently there is no definitive standard for storage capacity prefix meanings. Lots more good info, including a section on "Consumer confusion", in this Wikipedia article.

share|improve this answer

Because in technical terms 1Gb = 1024Mb (1,073,741,824 bytes), but in marketing terms 1Gb is 1,000,000,000 bytes.

http://en.wikipedia.org/wiki/Gigabyte#Consumer_confusion

That, and you lose some space with stuff like allocation tables, boot records and stuff.

share|improve this answer

They actually usually are as large as they are advertised, but:

  1. They always (as far as I know) use 1000 instead of 1024 when doing B to KB and so on.
  2. Some small amount of space is used by the file system to keep track of everything.

May be other reasons too, but those are the major ones I know about

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.