In Windows 98:
If I click on a file and see it is of size X, and then
click on another file and see it has size Y, and then
drag a box around them both to get the total file size Z
of the two, Z is always greater than X+Y.
For instance, Windows 98 claims:
4145KB+3400KB=7,724,723
3790KB+3515KB=7,479,424
What is going on here? It doesn’t look like it can be
explained by round off error.
Simple. A file may only be 4145 kilobytes in size, but will take up more than 4145 kilobytes on the hard disk.
Why would it use a different definition of size depending
upon whether I select one file or if I select two?
(Dragging a box around each file separately gives the same
result as just clicking on it, and these results don’t add
up to what you get when you drag a box around them both at
once.)
One kilobyte is actually 1024 bytes, not 1000. As much as I like to imagine the designers of DOS sitting around a table and saying, “1000 bytes per kilobyte? No, that would be like the metric system and we’re red-blooded Americans!”, they probably chose 1024 first because it was a nice round binary number, then chose the name ‘kilobyte’ because it’s approximately 1000.
4145 KB + 3400 KB = 7545 KB = 7,726,080 bytes
3790 KB + 3515 KB = 7305 KB = 7,480,320 bytes
Those answers are almost the same as the total byte sizes you posted… the difference is caused by Windows rounding off the decimals after 4145, 3400, etc.
This difference between a computer “kilobyte” and the normal definition of the prefix “kilo” blew my mind the first time I heard about it too. I can see why this nomenclature was chosen, but it think it was a stupid idea. I think a better idea would have been to either use kilobyte to mean 1000 bytes, as I think most people would assume it means who aren’t familiar with binary, or choose some unique units to measure bytes that aren’t as confusing.
I’m not sure if that’s what is causing your issue, but it gets me going every time I hear about the screwy way the prefixes kilo, mega, etc. are used with computer memory.
And, in fact, some windows utilities present increments of 1000 or 1000000 bytes, whereas others present K’s as 1024, as explained.
It’s an accident of history - people just started saying “K” because 2 ** 10 = 1024 was so close to 1000, and we’ve been confusing ourselves ever since. I will agree that it would have been better if somebody had coined a new shorthand term, but usage is too ingrained by now. Perhaps “bik”, as a shorthand for “binary kilo” would have worked. Especially since we would then get “bim” and “big”, the latter being quite descriptive, and ammenable to a lot of puns about disk sizes and so on. Unfortunately, the next step would be “bit”, and we’re right back to confusing ourselves.
BTW, capacities of things come out naturally in powers of 2 because they are addressed with fields of a certain number of binary bits - for instance, you may have a 16 bit byte address, which allows for 2 ** 16 bytes to be addressed = 64 * 2 ** 10 = “64K” = 65536. See how we get into this mess?
Some people do use 1000 bytes = 1 kilobyte: Computer salesman. When you see a computer with a disk that’s advertised as having 1 GB, think decimal, which makes it a billion bytes, instead of the binary, which gives you 1,073,741,824 bytes. Sneaky? Yep. Underhanded? You bet. Deliberately confusing? That’s the deal. Just check the small print as it flashes by on your screen that was measured diagonally to include the parts of the screen obscured by the case.