Helping people with computers... one answer at a time.
As it turns out, common terms used to measure disk space can be ambiguous. As a result, a megabyte to you might not be the same as a megabyte to your computer.
I just purchased a new computer with a 1TB (terabyte) hard drive. Windows is telling me it has 976,760,000KB of disk space. I don't get it. Shouldn't it be 1,000,000,000KB? Is there anything I can do to recover the other space? If I go to Windows Explorer and click on the hard drive symbol, it will show me the space on the hard drive. It said the total available space is 931 GB! What happened to the other 69 gigabytes?
They were never there.
Believe it or not, there's no real, agreed upon definition of what a gigabytes is.
Let me clarify: there are definitions. Plural. And which one gets used depends on ... well, it depends on how you think.
The fundamental problem stems from the fact that computers think in powers of two (1, 2, 4, 8, 16 and so on) while people think in terms of powers of 10 (1, 10, 100, 1000 and so on).
So to a computer, a kilobyte is 1024 bytes (two to the 10th power). A megabyte is 1,048,576 (1024 times 1024, or two to the 20th). And a gigabyte is 1,073,741,824 (1024 times 1024 times 1024, or two to the 30th).
To a computer, a terabyte would be 1,099,511,627,776 bytes (1024 * 1024 * 1024 * 1024, or two to the 40th).
Naturally, people don't think like that.
We think of a kilobyte as "around" 1,000 bytes. Close. Close enough for most conversations. But when we think of a megabyte as "around" 1,000,000 bytes, and a gigabyte as "around" 1,000,000,000 bytes, or a terabyte as "around" 1,000,000,000,000 bytes, we're getting less and less accurate at each step along the way.
To a computer, 1,000,000,000,000 bytes is really ... 931 gigabytes.
And sure enough, my own "one terabyte" drive shows exactly that:
If you're going to sell a hard drive that holds 1,000,000,000,000 bytes, and you have the opportunity to call it one terabyte (in human terms) or 931 gigabytes (in computer terms), which would you choose?
"1TB" sure sounds like you're getting a bunch more for your money than "931GB", doesn't it?
So, you're getting a terabyte drive, alright. Except that you're not, if you're thinking like a computer.
Of course, the problem that we've seen is that the terms kilobyte, megabyte, and so on are all ambiguous1. The same term can mean different things depending on context or even just depending on a whim.
Enter the "kibibyte" (and the mebibyte, gibibyte, tebibyte and so on).
These terms are defined to mean only the "think like a computer" value. A kibibyte is exactly 1024 bytes, always. A mebibyte is 1,048,576, always. A gibiyte is 1,073,741,824 bytes, always.
And a tebibyte is exactly 1,099,511,627,776 bytes. Always.
These terms even have a slightly different abbreviation: while KB refers to a kilobyte, KiB refers to a kibibyte.
And in contexts where these terms are used, "kilo", "mega" and so on are all assumed to take on their correct "human" values, based on powers of 10.
Which means that the salesmen weren't even lying when they sold you a terabyte drive that has only 931GiB on it. If anything, it's Windows (and other operating systems) failure to use the new more accurate terms that leads to the confusion.
Because 931GB is not 931GiB.
And, to be fair, I can't blame the OS designers for not wanting to throw even more typically unheard-of computer terms at us.
Even though what I just described is the major reason for the discrepancy in total disk capacity, there are other things that contribute to even less space actually being available or free.
On a completely empty hard disk, the operating system will reserve some amount of space for its own use. For example, the top level directory structure, even if empty, takes some space. Security information, the recycle bin, and other information is placed on the hard disk before you ever create your first file. Exactly how much will vary, depending on how the disk is formatted.
And of course, if this is your system drive, the operating system may also place certain hidden files that can get quite large, including your swap and hibernation files.
(This is an update to an article originally published March 13, 2005.)
1: Technically, they are not at all ambiguous. The prefixes kilo, mega, and so on actually specifically mean factors based on powers of 10, not powers of two. In other words, they are specifically human-based numbers. A kilometer is unambiguously exactly 1,000 meters, for example. It's the computer industry that's caused the confusion by using the terms inaccurately for numbers based on powers of two. For years.