in addition to the overhead, there's the matter of units. Naturally manufacturers will take every step possible to make it look like you're getting more than you are. In this case, computers use base 2 for most everything at low level, and so storage is addressed in binary also. So 2, 4, 8, 16... etc, and handily passes by 1024, which is pretty close to 1000. So 1024 bytes is a kilobyte, even though 1000 is a kilo. 1024 squared is a MB, but is 1048576 bytes.
When manufacturing storage, there's a certain amount of overhead required. Places to store remaps for instance. You might want to be able to remap 2% of the blocks on the drive if they fail. And you have to store the table somewhere. Rather than go to the added expense of adding a second storage, they nibble into the space you thought you were getting. So they "say" it's an 8GB flash drive. But it's not 8 "gigabytes". It's 8 million bytes. (look for the fine print on the package, it's there) 8GB is actually over 8.5 billion bytes. The flash storage has all 8.5 million bytes of space, but you can't use it all, you only get a shade over 8 billion to use, the controller hides the rest away for its own use. But they don't want to say you are getting 7.44GB, so they say 8gb but they mean 8 billion bytes, about 7.4 GB.
But they probably have to. Consumers are, if nothing else, predictable. The same product that sells for $90 will sell a lot better at $89.95. If one flash says it's 7.4 and the other says it's 8 for the same price, you'll probably buy the 8 even though they're the same. So since everyone does it, everyone has to do it. That's just how marketing works. It's a moral "race to the bottom".
As of Snow Leopard, FInder has started reporting sizes in kilos. Get Info on my hard drive shows capacity is 749.81GB. In terminal, diskutil info /dev/disk0 even gives:
Total Size: 750.2 GB (750156374016 Bytes) (exactly 1465149168 512-Byte-Blocks)
750156374016/1024/1024/1024 is about 698, and that's what 10.5 would have reported for disk capacity, 698GB. But people like to see the bigger number. I don't know why Apple decided to change. Maybe they got too many complaints from people about "missing space" on their hard drives, as reported by Finder and Disk Utility.
1000/1024 is about 97.5%. But when you do that three times (kb, mb, gb) it's about 93%, you lose about 6-7 percent due to math.
The much less informative tiger diskutil reports this for a "250 gb" hard drive:
Total Size: 233.8 GB
less informative, but MORE honest. 233GB / .93 is, as expected, 250 billion bytes.
Then we get into "blocksizes" which are a whole 'nother critter. The hard drive can't store a single byte, it has to reserve whole blocks at a time. If the blocks are 512 bytes, then a one character file will take 512 bytes. A 511 and a 512 byte document will take 512 bytes to store, but add one more character and the file now requires 1024 bytes to save. This doesn't look like much, but it adds up. On the average, every file wastes half a block of space. If you have 500,000 files on your boot drive, thats over 120MB. Get Info in Finder adds file bytes, NOT block bytes, so you usually don't see it.
You'll understand this issue gets worse if the block size is bigger, since the waste is (number of files) x (block size / 2). Flash drives, due to their design, write in much larger blocks, to speed up the write process and to extend their useful lifetime. 32k or 128k may be a block size for a flash drive. 128k block size storage wastes an average of 64k per file saved to it. That adds up really fast. And the irony is, those are the smaller drives. So saving to them means your overhead is much higher, and your usable space to begin with was much lower.
I work for the Department of Redundancy Department