Why are Hard Drives advertised as having more space than they do?

  • Thread starter Thread starter ceiling_fan
  • 14 comments
  • 1,823 views
Messages
8,707
United States
Utah
Messages
ceiling_fan
This question has irked me, ever since I got my first laptop. It was advertised as having a 40GB hard drive, but it was about 37GB. I've asked people why this is and they say it's the OS or something. That can't be true because the bigger the hard drive is, the bigger the missing "chunk" is. My 160GB HD is really about 145GB, and by 500GB drive is about 460GB. Can somebody please tell me what this is all about?
 
The main problem is that originally, 1 kilobyte equaled 1024 bytes (2^10). However, in more recent times, disk manufacturers have started to use the prefix as most people would normally use – that is, 1 kilobyte equals 1000 bytes. However, most operating systems still use the binary representation (2^10), which is why when they report disk space, it seems artificially smaller.

As a simple example, let’s say we have a really dumb hard disk with only 1 kB of storage capacity. The manufacturer will use kB in the more “intuitive” sense – your drive will come packaged with 1000 bytes. However, when the OS sees it:

(1000 bytes/1 kilobyte)*(1 kilobyte/1024 bytes)*(1000 bytes) = 977 bytes

This issue obviously gets much worse as the drive capacity goes up.
 
(1000 bytes/1 kilobyte)*(1 kilobyte/1024 bytes)*(1000 bytes) = 9766 bytes

Wow, I get 10 times more capacity then :D.
I believe you meant to say 976.6 bytes.

AMG.
 
Whoops, right you are.
 
The other issue is that the advertised capacity is as an unformatted drive. When you run off and actually install a filesystem, then the OS has to do all its own bookkeeping chores, and it uses sectors of the drive to do that. The directory, allocation tables, inode tables, link lists, whatever, depending on the OS. A certain amount of the disk becomes the disks own scratch space.

And it's as Sage said, 80,000,000,000 bytes of space is NOT 80 gigabytes. A mfr will make a drive with 80,000,000,000 bytes and sell at as an 80-gig, when in fact Windows will report 74.5 GB space.
 
Wow. I already knew that each denomination was based on 1024 of the last, but I didn't realize that manufacturers were using the ignorant way to count Gigabytes in an attempt to make their harddrives look "bigger."
 
Wow. I already knew that each denomination was based on 1024 of the last, but I didn't realize that manufacturers were using the ignorant way to count Gigabytes in an attempt to make their harddrives look "bigger."

Technically they aren't. The "kilo" prefix means "1000". 1 kilobyte IS 1,000 bytes.

The manufacturer reports the amount of disk space according to SI units and prefices, which are always base10 - kilo = 1000, Mega = 1,000,000, Giga = 1,000,000,000, Tera = 1,000,000,000,000. Computers report the amount of disk space according to a different set of prefices which are base2 - kibi = 1024, mebi = 1,048,576, gibi = 1,073,741,824, tebi = 1,099,511,627,776. These prefices mean "kilo binary byte", "mega binary byte" - and so on.

So a 100 gigabyte hard drive has 100 gigabytes of storage - 100,000,000,000 bytes. 100,000,000,000 bytes = 93.1 gibibytes.

Now technically, this means that the computer is at fault. The abbreviations are not the same. A Gigabyte is "GB", but a gibibyte is "GiB" - 100GB = 100GB, not 93.1GB, but 100GB = 93.1GiB. The computer is returning a value in gibibytes, but reporting it as gigabytes.
 
Technically they aren't. The "kilo" prefix means "1000". 1 kilobyte IS 1,000 bytes.

The manufacturer reports the amount of disk space according to SI units and prefices, which are always base10 - kilo = 1000, Mega = 1,000,000, Giga = 1,000,000,000, Tera = 1,000,000,000,000. Computers report the amount of disk space according to a different set of prefices which are base2 - kibi = 1024, mebi = 1,048,576, gibi = 1,073,741,824, tebi = 1,099,511,627,776. These prefices mean "kilo binary byte", "mega binary byte" - and so on.

So a 100 gigabyte hard drive has 100 gigabytes of storage - 100,000,000,000 bytes. 100,000,000,000 bytes = 93.1 gibibytes.

Now technically, this means that the computer is at fault. The abbreviations are not the same. A Gigabyte is "GB", but a gibibyte is "GiB" - 100GB = 100GB, not 93.1GB, but 100GB = 93.1GiB. The computer is returning a value in gibibytes, but reporting it as gigabytes.

Understood, but humans can adapt much more easily than computers can, and the fact remains that the only reason why harddrive manufacturers use the SI format is because they can advertise having "more" space. Computers have always used the base2 form of "kilo," "mega," and "giga," and probably always will. There's no reason why the manufacturers should be unaware of this.
 
Understood, but humans can adapt much more easily than computers can, and the fact remains that the only reason why harddrive manufacturers use the SI format is because they can advertise having "more" space. Computers have always used the base2 form of "kilo," "mega," and "giga," and probably always will. There's no reason why the manufacturers should be unaware of this.

But it is incorrect.

Kilo applies only to 1,000. Mega applies only to 1,000,000. Giga applies only to 1,000,000,000.

There's no reason why OS programmers should be unaware of this.
 
But it is incorrect.

Kilo applies only to 1,000. Mega applies only to 1,000,000. Giga applies only to 1,000,000,000.

There's no reason why OS programmers should be unaware of this.

Maybe Apple or Linux's many programmers, but Microsoft is too busy struggling to put together a reliable product to think about anything else. :lol:

The precedent has been set. I don't forsee it changing any time soon, so the harddrive manufacturers' "noble efforts" are meaningless. Anyone who expects their computer to report 1,000 bytes as 1.000 kilobytes is ignorant.

Language is inconsistent anyway. ;)
 
Which is why we have SI units and prefices...

It would appear that SI got pwn3d by the OS programmers, then, wouldn't it? :sly:
 
It would appear that SI got pwn3d by the OS programmers, then, wouldn't it? :sly:

A deliberate decision to shortcut the SI units is not "pwnage". It's laziness. There really is no valid reason why computers should be unable to count the number of bytes used in accordance with SI units.
 
Ive always wondered that too ceiling fan!

I got a 20gb hd player and on the computer it says its 18gb and before that I had a 4gb hd player when actually is was 3.7 or something like that. I didnt know what it was. I thought it was my firmware taking up all the space which still didnt make sense either:lol:
 
A deliberate decision to shortcut the SI units is not "pwnage". It's laziness. There really is no valid reason why computers should be unable to count the number of bytes used in accordance with SI units.

It's not laziness, it fits powers of 2 better than the tens version we like. It's been that way in computers since the dawn of time (from the computer perspective, that is.) Memory pointers in a program are expressed in binary addresses, so it's powers of 2 we get stuck with. 2^10 is 1024, so that's a kilobyte. Closest binary power to 1000 bytes. Yes, kilo means 1,000, mega means 1,000,000, etc, but a 40's programmer is not going to brag about his kilo+24-byte memory units. 1024 is SO close to 1000 that it was used for kilo. By the time memory and storage availablilty got large enough to show the difference, it was too late to change it.
 
Back