Today I saw another complaint from someone who purchased a 500 GB hard drive, but was baffled/confused/annoyed/outraged that the drive formatted to only 465 GB of available space. What bothered me is that the complaint came from someone who claimed to be a technical user. I thought a technical user would understand that humans and computers count differently.
If you don't know what I mean, I'll sum it up, break it down, then sum it up again - just to be clear.
To sum it up:
Humans count using the decimal system computers count using the binary system.So? What does that mean?
Decimal?
Binary? Base-2 or base-10? Hold on, who said anything about bases?
Here's the breakdown. Humans count using the decimal system (a.k.a.
denary or base 10). Fundamentally, this means that we use 10 symbols to represent our numbers = 0,1,2,3,4,5,6,7,8 and 9. As we begin counting, we have to increase the order of magnitude each time we run out of symbols. That means, when you hit 9, you have to add another symbol and start over. That's how we arrive at 10. This system is particularly useful because we have 10 fingers and tends to allow us to represent fairly large numbers in a small amount of space. Decimal is also ridiculously easy because we all learned to count that way.
Computers, however, don't have fingers. They have transistors. Transistors (basically) have two states: off and on, or 0 and 1. When scientists were creating computers, they realized that base 2 uses only two symbols for counting, 0 and 1! How convenient.
This presents a problem for counting, because numbers require a large amount of space to be fully represented. Look at the following chart, for example:
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1111 |
| 15 | 10000 |
| 16 | 10001 |
| 17 | 10010 |
| 18 | 10011 |
| 19 | 10100 |
| 20 | 10101 |
Humans use symbols in two places to represent all the values between 10 and 99. Seven places are required to represent 99 in binary = 1100011. It's hard counting in binary! (well,not really, here's a
video on how to count in binary with your fingers.
Watch out for the numbers "4" and "132" - I'd hate to see what your friends do if you ran up to them, showed them 132, and shouted "I'm counting in binary!") Did you know you can count to 1,023 on your fingers in binary! It's over a million if you can use your toes, too!
'Big deal,' half of you say.
'My head hurts,' says the other half. The resounding chorus,
'What does it mean?'I'm getting there. Well, each time you add a place to your line of symbols, you increase by an
order of magnitude. Orders of magnitude are a convenient way to represent very large numbers. In decimal we have large spaces between each increase in magnitude. Binary does not. These orders of magnitude are important for the way we represent the values of hundred, thousand, million, billion, etc.
It's easy to write the words. We even use prefixes (which can get confusing if you use the
long scale versus the short scale, but that's another post) like kilo-, mega-, and
giga- to save us from having to write all those zeroes. If I wrote one gigabyte, I assume you would know what I meant.
Or would you?
See, the orders of magnitude map pretty nicely to the prefixes we use to represent them. 10^3 equals 1,000 or kilo; 10^6 equals 1,000,000 or mega; and 10^9 equals 1,000,000,000 or
giga. But what about binary? 2^10 equals kilo, or 1,024; 2^20 equals mega, or 1,048,576; and
giga is 2^30 or 1,073,741,824. Hang on a sec, this can be confusing.
Because the prefixes don't equal the exact same amount, there is a movement used among geeks and other sciency types to differentiate between the prefixes which you can read about here.It boils down to this. Hard drives are manufactured for machines, machines count in binary, and operating systems (that run the machines) convert large binary numbers using the prefixes respective to the order of magnitude they need to represent. Hard drives are made by humans, marketeers are humans
(really!), and they didn't want to explain everything I just did, so they decided to decree "One Gigabyte Equals 1,000,000,000 Bytes!" And they do, at least most do on the box. Buy how do we apply this knowledge?
Hard drives are sold under the 1,000,000,000 bytes/gigabyte measurement. So your brand new hard drive came with 500,000,000,000 bytes of storage.
Yay! Why, then, does the OS show 'only' 465 GB?
Jump back to the order of magnitude/prefix paragraph: the OS represents 1,073,741,824 bytes as a gigabyte, which means we've got some math to do. Luckily, we've laid it all out so far.
500,000,000,000 bytes / 1,073,741,824 bytes = 465.66128 Gigabytes. Lo and behold, that's where your 465 GB came from.
So that was a long way to get here, no?
In summary, it pays to understand the way things you buy are being accounted for. In the case of the hard drive, the
manufacturer says that they're selling you a drive with 500,000,000,000 bytes of storage, it's just that the OS counts differently. This picture sums it up (look at the capacity line):

Hey, I got a few more bytes than I paid for!