SI vs. IEC prefixes and bytes #10584
Replies: 1 comment 5 replies
-
Actual standards in useAnd I was about to cite JEDEC 100B.01, unfortunately, it's behind a paywall of some sort now, so I guess I'm not doing that (it defines both KB and KiB whenever it's used as a unit of storage capacity as 1024 bytes). IEC vs JEDEC is being discussed a lot, so I think I'll just skip it. About "kibiwords"I was objecting to the use of "kibiword", because this introduces an ambiguity where there wasn't any. It is called kilowords, you can check any dictionary or any literature on the subject. And it is factor of 2^10, because it is all but impossible to have a memory unit where By saying "kibiword", you are acting as if there are decimal kilowords you need to make distinction with. But there simply couldn't be decimal kiloword for technical reasons. A bit of history and anti-capitalist rantWith bytes it is a little bit more difficult, because decimal prefixes are actually used by hard drive manufacturers. In fact, the whole distinction between GB and GiB was invented by them for the sole purpose of avoiding getting their asses sued for false advertisement. It's no different than milk manufacturers who started using kilograms instead of liters. Funnily enough, even the margin is almost the same (1 kilobyte is 1.024 decimal kilobytes, 1 liter of milk is 1.035 kilograms). If you see it in a supermarket, you'll perceive no difference (that says 1, this says 1). But 3% adds up. This is called "shrinkflation". One of the ways to screw over customers without visibly increasing the price (another being intentional quality decline, I don't remember a term for it). There is no technical reason for having decimal kilobytes, so I bet if 10th power of 2 was just a little bit below 1000, this whole discussion wouldn't exist. So, in my opinion, if you ever see a person use "kilobytes" and mean 1000, they are up to no good. On applicability of metric prefixesPrefixes "kilo", "mega", etc. are a part of natural language, where they can be used to mean:
Metric prefixes are only well-defined when used with SI units. When used outside of SI, you'd be wise to double-check the meaning for each individual unit. In particular, it does not make any sense to use metric (base-10) units as is when the area you are describing is not using decimal system. Computers and computer science are not base-10. The bases used are 2, 8, 16. If you use decimal kilobytes, you'd get rounding errors where you otherwise wouldn't, thus it makes sense to expect that kilobytes aren't actually decimal. Another example that comes to mind here is: time. Clocks aren't base-10 either, the bases used are 12 and 60. You can of course start counting time in kiloseconds, but don't expect to be well-understood by others. This example may sound ridiculous, but people tried to have 100 seconds in a minute (even was official French government standard for 6 months, if wikipedia is correct on this). My position on the matterSuggestion here is: treat all units with SI prefixes as separate units. And remember, which units are used in which context with which multiplier. Just memorize that kilometers are spelled km, and mean 1000 meters. Kilobytes are spelled KB (with capital K) and mean 1024 bytes. Kilograms are spelled kg, and are not a derivative unit at all (it's the other way around, gram is defined as 1/1000th of kg, for whatever reason). And kiloseconds aren't a thing anywhere except possibly astronomy. Measuring storage space in decimal kilobytes is as ridiculous as measuring distance in "kibimeters". Different science area, different unit = different conventions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is a continuation of a conversation with @rlidwka in Why is Bevy's Coordinate System Right-Handed Y-Up? about SI prefixes and bytes. It's less off-topic here than it was there. (The heading says "Chat that doesn't fit anywhere else", and this doesn't fit anywhere else...)
This is the first time I've ever heard someone claim that SI prefixes are not applicable to non-SI units. In my circles they are widely used as general prefixes, including for currency and for otherwise unitless numbers. If you have cites for that, I would love to see them. (I'm not being sarcastic, please educate me if I'm wrong! I was sure that bit, and therefore octet/byte, was part of the SI family, but Google quickly corrected me on this. It's not been so helpful on the prefix applicability question.)
Mass storage manufacturers, communications standards, Apple (starting in 2009), every graphical file manager I've used on *nix, IEC 60027-2 (published in 1999), and every single lawsuit that has hinged on these prefixes all hold the opposite view. [Edit: It would be remiss not to add that Microsoft has still not gone along with IEC 60027-2, and many (but not all) command-line programs I've used on *nix have not done so either.]
For the record, "KiB" is the IEC 60027-2 abbreviation for "kibibyte".
As for the strangeness of using the "word" unit to count memory: in the PDP-7's era, it was common to measure storage in units of whatever word size was applicable to that architecture. In the PDP-7's case, that meant 18 bits per word. Its memory was not in any sense addressable in units smaller than a word, so this all made perfect sense at the time. Thus, the PDP-7 was marketed as having "4 kilowords", meaning 4096 words. (IEC 60027-2 was still almost half a century away.)
And if you think all that's bad... If you said "byte" at the time, you had a decent chance of being taken as meaning anywhere from 5 up to 9 bits, assuming the other person had even heard the term before. If you were lucky, it matched the bits-per-column of a punched card system that person was accustomed to. If you've ever wondered why RFCs often use the term "octet" instead of "byte", this is why; "octet" never means anything but eight bits. ...Except that some people have confusingly used "octet" to mean one octal digit (three bits), which... ugh, I'm still mad about that.
Random relevant fact: a double-sided high-density Sony floppy disk does not hold either 1.44 megabytes or 1.44 mebibytes, it actually holds 1440KiB (1 474 560 bytes). So not only are both meanings used in computer science, sometimes they're both used in the same unit!
Beta Was this translation helpful? Give feedback.
All reactions