They were never there.
Believe it or not, there’s no real, agreed-on definition of what a gigabyte is.
Let me clarify: there are definitions, plural. And which one gets used depends on how you think.
Become a Patron of Ask Leo! and go ad-free!
Thinking like a computer
The 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).
Thinking like a human
People don’t think that way.
We think of a kilobyte as “around” 1,000 bytes. That’s close enough for most casual 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.
To a computer, 1,000,000,000,000 bytes is really … 931 gigabytes.
And sure enough, my own one terabyte drive shows exactly that:
Thinking like a salesman
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 — unless you’re thinking like a computer.
Thinking like a linguist
The problem 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.
Because of this confusion, new terms have been created: “kibibyte” (and the mebibyte, gibibyte, tebibyte and so on). (Note the spelling with a “b”.)
These terms are defined to only the “think like a computer” value. A kibibyte is exactly 1024 bytes, always. A mebibyte is 1,048,576, always. A gibibyte 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.
This means that the salespeople weren’t lying when they sold you a terabyte drive that has only 931GiB on it. If anything, it’s the manufacturers’ failure to use the new, more accurate terms that leads to the confusion.
Because 931GB is not the same as 931GiB.
And, to be fair, I can’t blame the OS designers for not wanting to throw even more generally unheard-of geeky terms at us.
Thinking like an operating system
Even though what I just described is the major reason for the discrepancy in total disk capacity, other factors also contribute to less space being available than you expect.
On a completely empty hard disk, the operating system reserves 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 space depends on how the disk is formatted.
And of course, if this is your system drive, the operating system may also have large hidden files, including your swap and hibernation files. In recent years, many hard disks include hidden partitions that eat up even more space.
Footnotes & References
1: Technically, they are not at all ambiguous. The prefixes kilo, mega, and so on 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.