I often find myself explaining the same things in real life and online, so I recently started writing technical blog posts.

This one is about why it was a mistake to call 1024 bytes a kilobyte. It’s about a 20min read so thank you very much in advance if you find the time to read it.

Feedback is very much welcome. Thank you.

  • AlolanYoda@mander.xyz
    link
    fedilink
    English
    arrow-up
    90
    arrow-down
    9
    ·
    edit-2
    9 months ago

    A lot of people are replying as if OP asked a question. It’s a link to a blog post explaining why a kilobyte is 1000 and not 1024 bytes (exactly as the title says!). OP knows the answer, in fact they know it so well they wrote an extensive post about it.

    Thank you for the write up! You should re-check the spelling and grammar as some sections had some troubles. I have a sentence I need to go to the post to get, so let me edit this later!

    Edit: the second half of this sentence is a mess: “The factors don’t solely consist of twos, but ten are certainly lot of them.” Otherwise nothing jumped out at me but I would reread it just in case!

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      4
      ·
      9 months ago

      Thank you very much. I’ll try to fix that sentence later. I’m not a native speaker so it’s not always obvious for me when a sentence doesn’t sound right even though I pass sentences I’m not sure about through spell checks, MS Word grammar check and chat gpt 🤣

    • NekuSoul@lemmy.nekusoul.de
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      2
      ·
      9 months ago

      A lot of people are replying as if OP asked a question.

      I think part of that is because outgoing links without a preview image are really easy to confuse with text-only posts, particularly because Reddit didn’t allow adding both a text and a link simultaneously. Though in this case the text should’ve tipped people off that there’s a link as well.

      As for the actual topic, I agree with OP. I often forget to do it right when speaking, but I try to at least get it right when writing.

  • billwashere@lemmy.world
    link
    fedilink
    English
    arrow-up
    51
    arrow-down
    7
    ·
    9 months ago

    Well it’s because computer science has been around for 60+ years and computers are binary machines. It was natural for everything to be base 2. The most infuriating part is why drive manufacturers arbitrarily started calling 1000 bytes a kilobyte, 1000 kilobytes a megabyte, and 1000 megabytes a gigabyte, and a 1000 gigabytes a terabyte when until then a 1 TB was 1099511627776 bytes. They did this simply because it made their drives appear 10% bigger. So good ol’ shrinkflation. You could make drives 10% smaller and sell them for the same price.

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      13
      ·
      9 months ago

      If a hard drive has exactly 8’269’642’989’568 bytes what’s the benefit of using binary prefixes instead of decimal prefixes?

      There is a reason for memory like caches, buffer sizes and RAM. But we don’t count printer paper with binary prefixes because the printer communication uses binary.

      There is no(!) reason to label hard drive sizes with binary prefixes.

      • billwashere@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        So here’s the thing. I don’t necessarily disagree with you. And if this had done from the start it would never had been a problem. But it wasn’t and THAT is what caused the confusion. You put a lot of thought and research into your post and I can very much respect that. It’s something you feel strongly about and you took the time to write about your beef with this. IEC changed the nomenclature in the late 90s. But the REASON they changed it was to avoid the confusion caused by the drive manufacturers (I bet you can guess who was in the committee that proposed the change).

        But I can tell you as a professional IT person we never really expect any drive (solid state or otherwise) to be any specific size. RAID, file system overhead, block size fragmentation, etc all take a cut. It’s basically just bistromathics (that’s a Hitchhiker’s reference) and the overall size of any storage system is only vaguely related to actual drive size.

        So I just want to basically apologize for being so flippant before. It’s important enough to you that you took the time to write this. It’s just that I’m getting rather cynical as I get older and just expect the enshittification of every to continue ad infinitum on everything digital.

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      39
      ·
      9 months ago

      Pretty obvious that you didn’t read the article. If you find the time I’d like to encourage you to read it. I hope it clears up some misconceptions and make things clearer why even in those 60+ years it was always intellectually dishonest to call 1024 byte a kilobyte.

      You should at least read “(Un)lucky coincidence”

      • billwashere@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        Ok so I did read the article. For one I can’t take an article seriously that is using memes. Thing the second yes drive manufacturers are at fault because I’ve been in IT a very very long time and I remember when HD manufacturers actually changed. And the reason was greed (shrinkflation). I mean why change, why inject confusion where there wasn’t any before. Find the simplest least complex reason and that is likely true (Occam’s razor). Or follow the money usually works too.

        It was never intellectually dishonest to call it a kilobyte, it was convenient and was close enough. It’s what I would have done and it was obviously accepted by lots of really smart people back then so it stuck. If there was ever any confusion it’s by people who created the confusion by creating the alternative (see above).

        If you wanna be upset you should be upset at the gibi, kibi, tebi nonsense that we have to deal with now because of said confusion (see above). I can tell you for a fact that no one in my professional IT career of over 30 years has ever used any of the **bi words.

        You can be upset if you want but it is never really a problem for folks like me.

        Hopefully this helps…

        • CallumWells@lemmy.ml
          link
          fedilink
          English
          arrow-up
          0
          ·
          9 months ago

          I just think that kilobyte should have been 1000 (in binary, so 16 in decimal) bytes and so on. Just keep everything relating to the binary storage in binary. That couldn’t ever become confusing, right?

          • rottingleaf@lemmy.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            7 months ago

            Because your byte is 10 decimal bits, right? EDIT: Bit is actually an abbreviation, BIT, initially, so it would be what, DIT?.. Dits?..

      • λλλ@programming.dev
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        18
        ·
        edit-2
        9 months ago

        kilobit = 1000 bits. Kilobyte = 1000 bytes.

        How is anything about that intellectually dishonest??

        The only ones being dishonest are the drive manufacturers, like the person above said. They sell storage drives by advertising them in the byte quantity but they’re actually in the bit quantity.

        • locuester@lemmy.zip
          link
          fedilink
          English
          arrow-up
          16
          arrow-down
          4
          ·
          edit-2
          9 months ago

          They sell storage drives by advertising them in the byte quantity but they’re actually in the bit quantity.

          No, they absolutely don’t. That’d be off by 8x.

          The subject at hand has nothing to do with bits. Please, read what OP posted. It’s about 1024 vs 1000

        • wischi@programming.devOP
          link
          fedilink
          English
          arrow-up
          5
          arrow-down
          15
          ·
          9 months ago

          Calling 1024 a kilo is intellectually dishonest. Your conversation is perfectly fine.

  • Tatters@lemmy.world
    link
    fedilink
    English
    arrow-up
    31
    arrow-down
    1
    ·
    9 months ago

    Thanks for this article. Unfortunately, you used the word “prefix” when you really meant “unit symbol”. So, “kilo” and “mega” are prefixes, kB and MB are unit symbols. You repeatedly called the latter “prefixes”.

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      4
      ·
      9 months ago

      Thank you for the feedback. I know that only the “first” part is the prefix and I tried to be careful to not use it wrong. I just checked all 53 instances of “prefix” and I don’t see a wrong one, but to be fair there are situations that could be misunderstood easily like here:

      Today the only correct conversions are to either use SI prefixes (like 1 MB = 1000² bytes) or binary prefixes (1 MiB = 1024² bytes).

      But with prefix I only meant the “M” and “Mi” part and they are both prefixes.

      I’ll try to clarify that later so the difference is clear to all readers. Thank you.

      • Tatters@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        1
        ·
        9 months ago

        Ok, I understand what you are trying to do, but I that is not how I read it at the time. Prefix to me in this context means e.g., “kilo” in “kilobyte”, and not the “k” in “kB”. I am not sure it is helpful to split the unit symbol up like that.

        • tychosmoose@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          In terms of language you are correct. But in terms of SI usage it seems to me OP is expressing it correctly. The SI unit prefixes have a name, a symbol and a multiplier. The prefix is a concept that encompasses all three of those attributes. So “kilo” is one way of identifying the 10^3 unit prefix, but the name kilo is not the prefix itself. It’s just the name we use to refer to it. And the symbol k in km is certainly the unit prefix portion of that unit of measure.

        • wischi@programming.devOP
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          5
          ·
          9 months ago

          But the first part is called prefix even in the standard itself. I wanted to make that distinction because it’s not important what the base unit is. By speaking about prefixes instead of the unit as a whole I wanted to make it clear that you can (at least in theory) use any base unit. So everything I said about KiB and kB is also true for Kib and kb and even for kK (kilokelvin) and KiB (kibikelvin) 🤣

      • Deconceptualist@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        9 months ago

        While we’re nitpicking, the post says multiple times that SI prefix symbols are “all uppercase except for kilo (k)”.

        That’s just factually wrong. More than half of them are lowercase! There’s centi- ©, micro- (µ), nano- (n), etc. On the positive side there’s even deca- (da) and hecto- (h), though they aren’t particularly common or useful. I did at least see milli- (m) and bit (b) mentioned in a brief note though.

        Obviously context matters and only the positive powers from kilo upward are relevant in computer science. But I studied chemistry and physics so I guess it irked me to see the statement repeatedly ignore all the negative powers of ten.

        Overall, good rant though 😅 I’ll be more careful to use KiB and MiB from here out when appropriate.

        • wischi@programming.devOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 months ago

          ❤️ Thank you for taking the time to read it. And thank you so much for pointing that out, you are completely right and I totally didn’t think about that while writing the article, probably because negative exponents are pretty rare in computer science (as in milli-bytes, etc.). I’ll fix that in a few days. Thanks again for pointing that out.

  • Hamartiogonic@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    30
    arrow-down
    1
    ·
    9 months ago

    Here’s my favorite part.

    “In addition, the conversions were sometimes not even self-consistent and applied completely arbitrary. The 3½-inch floppy disk for example, which was marketed as “1.44 MB”, was actually not 1.44 MB and also not 1.44 MiB. The size of the double-sided, high-density 3½-inch floppy was 512 bytes per sector, 18 sectors per track, 160 tracks, that’s 512×18×16 = 1’474’560 bytes. To get to “1.44” you must first divide 1’474’560 by 1024 (“bEcAuSE BiNaRY obviously”) to get 1440 and then divide by 1000 for perfect inconsistency, because dividing by 1024 again would get you an ugly number and we definitely don’t want that. We finally end up with “1.44”. Now let’s add “MB” because why the heck not. We already abused those units so much it’s not like they still mean anything and it’s “close enough” anyways. By the way, that “close enough” excuse never “worked when I was in school but what would I know compared to the computer “scientists” back then.

    When things get that messy, numbers don’t even mean anything any more. Might as well just label the products using entirely qualitative terms like “big” or “bigger”.

  • HubertManne@kbin.social
    link
    fedilink
    arrow-up
    27
    arrow-down
    1
    ·
    9 months ago

    I was confused when I just read the headline. Should be “Why I (that would be you not me) think a kilobyte should be 1000 instead of 1024”. Unpopular opinion would be a better sub for it.

      • HubertManne@kbin.social
        link
        fedilink
        arrow-up
        12
        arrow-down
        3
        ·
        9 months ago

        I know there is no option as 1024 is what the standard is now. Im not reading that anymore than someone saying how a red light really means go.

        • abhibeckert@lemmy.world
          link
          fedilink
          English
          arrow-up
          10
          arrow-down
          6
          ·
          9 months ago

          1024 is not the standard. The standard term for 1024 is “kibi” or “Ki” and the standard term for 1000 is “kilo” and has been since the year 1795.

          There was a convention to use kilo for 1024 in the early days of computing since the “kibi” term didn’t exist until 1998 (and took a while to become commonly used) — but that convention was always recognised as an incorrect use of the term. People just didn’t care much especially since kilobytes were commonly rounded anyway. A 30,424 byte file is 29.7109375 kibibytes or 30.424 kilobytes… both will likely be rounded to 30 either way, so who cares if it’s slightly wrong? Just use bytes if you need to know the exact size.

          Also - hard drives, floppy disks, etc have always referred to their size in base 1000 numbers so if you were working with 30KB in the early days of computers it was very rarely RAM. A PDP-11 computer, for example, might have only had 8196 bytes of RAM (that’s 8 kibibytes).

          There are some places where the convention is still used and it can be pretty misleading as you work with larger numbers. For example 128 gigs equals 128,000,000,000 bytes (if using the correct 1000 unit) or 137,438,953,472 bytes (if kilo/mega/giga = 1024).

          The “wrong” convention is commonly still used for RAM chips. So a 128GB RAM chip is significantly larger than a 128GB SSD.

          • Martin@feddit.nu
            link
            fedilink
            English
            arrow-up
            3
            ·
            9 months ago

            Also - hard drives, floppy disks, etc have always referred to their size in base 1000 numbers

            That is not true. For a long time everything (computer related) was in the base 2 variants. Then the HD manufacturers changed so their drives would appear larger than they actually were (according to everyone’s notions of what kn/mb/gb meant). It was a marketing shrinkflation stunt.

        • wischi@programming.devOP
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          19
          ·
          edit-2
          9 months ago

          So why don’t they just label drives in Terabit instead of terabyte. The number would be even bigger. Why don’t Europeans also use Fahrenheit, with the bigger numbers the temperature for sure would instantly feel warmer 🤣

          Jokes aside. Even if HDD manufacturers benefit from “the bigger numbers” using the 1000 conversation is the objectively only correct answer here, because there is nothing intrinsically base 2 about hard drives. You should give the blog post a read 😉

          • wewbull@feddit.uk
            link
            fedilink
            English
            arrow-up
            12
            arrow-down
            1
            ·
            9 months ago

            there is nothing intrinsically base 2 about hard drives

            Yes there is. The addressing protocol. Sectors are 512 (2⁹) bytes, and there’s an integer number of them on a drive.

            • wischi@programming.devOP
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              10
              ·
              9 months ago

              That’s true but the entire disk size is not an exact power of two that’s why binary prefixes (1024 conversation) don’t have any benefit whatsoever when it comes to hard drives. With memory it’s a bit different because other than with storage devices RAM size is always exactly a power of two.

  • gens@programming.dev
    link
    fedilink
    English
    arrow-up
    23
    arrow-down
    3
    ·
    9 months ago

    The mistake is thinking that a 1000 byte file takes up a 1000 bytes on any storage medium. The mistake is thinking that it even matters if a kB means 1000 or 1024 bytes. It only matters for some programmers, and to those 1024 is the number that matters.

    Disregarding reality in favor of pedantics is the real mistake.

  • Australis13@fedia.io
    link
    fedilink
    arrow-up
    11
    arrow-down
    1
    ·
    9 months ago

    This whole mess regularly frustrates me… why the units can’t be used consistently?!

    The other peeve of mine with this debacle is that drive capacities using SI units do not use the full available address space (since it’s binary). Is the difference between 250GB and 256GiB really used effectively for wear-levelling (which only applies to SSDs) or spare sectors?

      • Australis13@fedia.io
        link
        fedilink
        arrow-up
        6
        arrow-down
        1
        ·
        9 months ago

        Of course. The thing is, though, that if the units had been consistent to begin with, there wouldn’t be anywhere near as much confusion. Most people would just accept MiB, GiB, etc. as the units on their storage devices. People already accept weird values for DVDs (~4.37GiB / 4.7GB), so if we had to use SI units then a 256GiB drive could be marketed as a ~275GB drive (obviously with the non-rounded value in the fine print, e.g. “Usable space approx. 274.8GB”).

        • wewbull@feddit.uk
          link
          fedilink
          English
          arrow-up
          4
          ·
          9 months ago

          They were consistent until around 2005 (it’s an estimate) when drives got large enough where the absolute difference between the two forms became significant. Before that everyone is computing used base 2 prefixes.

          I bet OP does too when talking about RAM.

      • wischi@programming.devOP
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        6
        ·
        9 months ago

        It’s not as simple as that. A lot of “computer things” are not exact powers of two. A prominent example would be HDDs.

        • Lmaydev@programming.dev
          link
          fedilink
          English
          arrow-up
          8
          arrow-down
          2
          ·
          edit-2
          9 months ago

          In terms of storage 1000 and 1024 take the same amount of bytes bits to represent. So from a computer point of view 1024 makes a lot more sense.

          It’s just a binary Vs decimal thing. 1000 is not nicely represented in binary the same as 1024 isn’t in decimal.

          Edit: was talking about storing the actual number.

          • abhibeckert@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            9 months ago

            In terms of storage 1000 and 1024 take the same amount of bytes.

            What? No. A terabyte in 1024 units is 8,796,093,022,208 bits. In 1000 units it’s 8,000,000,000,000 bits.

            The difference is substantial with larger numbers.

            • Lmaydev@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              edit-2
              9 months ago

              Both require the same amount of bits again. So the second one makes more sense for a computer.

    • nous@programming.dev
      link
      fedilink
      English
      arrow-up
      7
      ·
      9 months ago

      Huh? What does how a drive size is measured affect the available address space used at all? Drives are broken up into blocks, and each block is addressable. This is irrelevant of if you measure it in GB or GiB and does not change the address or block size. Hell, you have have a block size in binary units and the overall capacity in SI units and it does not matter - that is how it is typically done with typical block sizes being 512 bytes, or 4096 (4KiB).

      Or have anything to do with ware leveling at all? If you buy a 250GB SSD then you will be able to write 250GB to it - it will have some hidden capacity for ware-leveling, but that could be 10GB, 20GB, 50GB or any number they want. No relation to unit conversions at all.

      • Australis13@fedia.io
        link
        fedilink
        arrow-up
        2
        arrow-down
        2
        ·
        edit-2
        9 months ago

        Huh? What does how a drive size is measured affect the available address space used at all? Drives are broken up into blocks, and each block is addressable.

        Sorry, I probably wasn’t clear. You’re right that the units don’t affect how the address space is used. My peeve is that because of marketing targeting nice round numbers, you end up with (for example) a 250GB drive that does not use the full address space available (since you necessarily have to address to up 256GiB). If the units had been consistent from the get-go, then I suspect the average drive would have just a bit more usable space available by default.

        My comment re wear-levelling was more to suggest that I didn’t think the unused address space (in my example of 250GB vs 256GiB) could be excused by saying it was taken up by spare sectors.

        • nous@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          (for example) a 250GB drive that does not use the full address space available

          Current drives do not have different sized addressable spaces and a 256GiB drive does not use the full address space available. If it did then that would be the maximum size a drive could be. Yet we have 20TB+ drives and even those are no where near the address size limit of storage media.

          then I suspect the average drive would have just a bit more usable space available by default.

          The platter size might differ to get the same density and the costs would also likely be different. Likely resulting in a similar cost per GB, which is the number that generally matters more.

          My comment re wear-levelling was more to suggest that I didn’t think the unused address space (in my example of 250GB vs 256GiB) could be excused by saying it was taken up by spare sectors.

          There is a lot of unused address space - there is no need to come up with an excuse for it. It does not matter what size the drive is they all use the same number of bits for addressing the data.

          Address space is basically free, so not using it all does not matter. Putting in extra storage that can use the space does cost however. So there is no real relation between the address spaces and what space is on a drive and what space is accessible to the end user. So it makes no difference in what units you use to market the drives on.

          Instead the marketing has been incredibly consistent - way back to the early days. Physical storage has essentially always been labeled in SI units. There really is no marketing conspiracy here. It just that is they way it was always done. And why it was picked that way to begin with? Well, that was back in the day when binary units where not as common and physical storage never really fit the doubling pattern like other components like ram. You see all sorts of random sizes in early storage media so SI units I guess did not feel out of place.

    • abhibeckert@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      The other peeve of mine with this debacle is that drive capacities using SI units do not use the full available address space (since it’s binary).

      The “full available address space” goes down as the drive gets older and bad sectors are removed.

      With a good drive, it might take ten or more years before you actually see the “size” of the drive shrink, but that’s mostly because you 500GB drive actually had something like 650GB of storage when it was brand new.

    • Hamartiogonic@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      You know what else is frustrating? Time units. It’s like we’re back in the pre-SI days again. Try to compare the flow rates of two pumps when one is 123 m^3/h and the other is 1800 l/min. The French tried to fix this mess too while they were at it, but somehow we’re still stuck with this archaic mess.

  • smo@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    10
    ·
    9 months ago

    This has been my pet rant for a long time, but I usually explain it … almost exactly the other way around to you.

    You can essentially start off with nothing using binary prefixes. IBM’s first magnetic harddrive (the IBM 350 - you’ve probably seen it in the famous “forklifting it into a plane” photo) stored 5 million characters. Not 5*1024*1024 characters, 5,000,000 characters. This isn’t some consumer-era marketing trick - this is 1956, when companies were paying half a million dollars a year (2023-inflated-adjusted) to lease a computer. I keep getting told this is some modern trick - doesn’t it blow your mind to realise hdd manufacturers have been using base10 for nearly 70 years? Line-speed was always a lie base 10, where 1200 baud laughs at your 2^n fetish (and for that matter, baud comes from telegraphs, and was defined before computers existed), 100Mbit ethernet runs on a 25MHz clock, and speaking of clocks - kHz, MHz, MT/s, GT/s etc are always specified in base 10. For some reason no-one asks how we got 3GHz in between 2 & 4GHz CPUs.

    As you say, memory is the trouble-maker. RAM has two interesting properties for this discussion. One is that it heavily favours binary-prefixed “round numbers”, traditionally because no-one wanted RAM with un-used addresses because it made address decoding nightmarish (tl;dr; when 8k of RAM was usually 8x1k chips, you’d use the first 3 bits of the address to select the chip, and the other 10 bits as the address on the chip - if chips didn’t use their entire address space you’d need to actually calculate the address map, and this calculation would have to run multiples of times faster than the cpu itself) . The second, is that RAM was the first place non-CSy types saw numbers big enough for k to start becoming useful. So for the entire generation that started on microcomputers rather than big iron, memory-flavoured-k were the first k they ever tasted.

    I mean, hands up who had a computer with 8-64k of RAM and a cassette deck. You didn’t measure the size of your stored program in kB, but in seconds of tape.

    This shortcut than leaked into filesystems purely as an implementation detail - reading disk blocks into memory is much easier if you’re putting square pegs into square holes. So disk sectors are specified in binary sizes to enable them to fit efficiently into memory regions/pages. For example, CP/M has a 128-byte disk buffer between 0x080 and 0x100 - and its filesystem uses 128-byte sectors. Not a coincidence.

    This is where we start getting into stuff like floppy disk sizes being utter madness. 360k & 720k were 720 and 1440 512-byte sectors. When they doubled up again, we doubled 2800 512-byte sectors gave us 1440k - and because nothing is ever allowed to make sense (or because 1.40625M looks stupid), we used base10 to call this 1.44M.

    So it’s never been that computers used 1024-shaped-k’s. It should be a simple story of “everything uses 1,000s, except memory because reasons”. But once we started dividing base10-flavoured storage devices into base2-flavoured sectors, we lost any hope of this ever looking logical.

    • smo@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      9 months ago

      aside: the little-k thing. SI has a beautifully simple rule, capital letters for prefixes >1, small letters for prefixes <1. So this disambiguates between a millivolts (mV) and megavolts (MV).

      But, and there’s always a but. The kilogram was the first SI unit, before they’d really thought it through. So we got both a lower-case k breaking such a beautifully simple rule, and the kilogram as a base unit instead of a gram. The Kilogram is metric’s “screw it, we’ll do it live”.

      Luckily this is almost a non-issue in computing as a fraction of a bit never shows up in practice. But! If you had a system that took 1000 seconds to transfer one bit, you could call that a millibit per second, or mbps, and really mess things up.

    • unreasonabro@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      edit-2
      9 months ago

      2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. It’s pretty fucking logical m8. You know what’s not logical? Base 10

  • Melllvar@startrek.website
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    9 months ago

    Because SI prefixes are always powers of the base. Base 10 is the most common, but that’s more human psychology that math.

      • Victor@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        9 months ago

        I think they mean it’s easier to refer to powers of 1000 with the SI units, rather than of 1024 as with Kibi and the lot. Especially higher up in the prefixes, because it starts to diverge more and more from the expected value.

  • DrPop@lemmy.ml
    link
    fedilink
    English
    arrow-up
    8
    ·
    9 months ago

    I know it’s already been explained but here is a visualization of why.

    0 2 4 8 16 32 64 128 256 512 1024

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      10
      ·
      9 months ago

      Did you read the blog post? If you don’t find the time you should at least read “(Un)lucky coincidence” to see why it’s not (and never was) a bright idea to call 1024 “a kilo”.

      • pirrrrrrrr@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        9 months ago

        Dude you’re pretty condescending for a new author on an old topic.

        Yeah I read it and it’s very over worded.

        1024 was the closest binary approximation of 1000 so that became the standard measurement. Then drive manufacturers decided to start using decimal for capacity because it was a great way to make numbers look better.

        Then the IEC decided “enough of this confusion” and created binary naming standards (kibi gibi etc…) and enforced the standard decimal quantity values for standard names like kilo-.

        It’s not ground breaking news and your constant arguing with people in the thread paints you as quite immature. Especially when plenty of us remember the whole story BECAUSE WE LIVED IT AS IT PROFESSIONALS.

        We lacked a standard, a system was created. It was later changed to match global standard values.

        You portray it with emotive language making decisions out to be stupid, or malicious. A decision was made that was perfectly sensible at the time. It was then improved. Some people have trouble with change.

        Your writing and engagement styles scream of someone raised on clickbait news. Focus on facts, not emotion and sensationalism if you want to be taken seriously in tech writing.

        Focus on emotion and bullshit of you want to work for BuzzFeed.

        And if you just want an argument go use bloody twitter.

  • TigrisMorte@kbin.social
    link
    fedilink
    arrow-up
    9
    arrow-down
    4
    ·
    9 months ago

    It is only a mistake from a Human PoV. It is more efficient for the chip since 1000 bytes and 1024 bytes take up the same space. But Humans find anything not base 10 difficult.

    • ares35@kbin.social
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      9 months ago

      that’s what it was initially, reporting decimal ‘megabytes’ for hdd capacity. lawsuits and settlements followed.

      the dust settled and what we have now is disclaimers on storage products (from the legal settlements) and they continue to use ‘decimal’ measurements…

      and we also a different set of prefixes for ‘binary’ units of measurements (standards body trying to address the problem of confusion): kibi, mebi, gibi, tebi, pebi, exbi; which are not widely used yet… the ‘old’ ones are for decimal but still commonly used for binary.

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      8
      arrow-down
      18
      ·
      9 months ago

      Did you read the blog post? It’s not a scam. HDD vendors might profit from “bigger numbers” but using the units they do is objectively the only sensible and correct option. It’s like saying that the weather report is in Fahrenheit because in Celsius the numbers would be lower and feel somehow colder 🤣

      If it would be about bigger numbers why don’t HDD manufacturers just use Terabit instead of terabyte? The “bigger number” argument is not a good one.

      • TrickDacy@lemmy.world
        link
        fedilink
        English
        arrow-up
        9
        ·
        9 months ago

        Because it’s much easier to mistake a number for a somewhat close number than one that is orders of magnitude different…

        I’ll try to read the article later but the reality is that HDD manufacturers could help customers disambiguate but that would hurt their bottom line so they don’t.

      • Digital Mark@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        9 months ago

        Videogame companies literally did use “megabit” when the truth was “128KiB”, because it sounded better. Actual computer companies were still listing binary power numbers, because buyers had more to invest and care about accuracy.

        You say “sensible”, but it’s lying for profit.

  • smokin_shinobi@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    6
    ·
    9 months ago

    I was taught 1024 in my tech school. So I won’t ever refer to it as 1000 instead 1024. Not that it seems even remotely relevant though.

    • MNByChoice@midwest.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      Yes. When the standards were changed, and they where, the old world should have no longer been used. Setting the definition to something only makes things more confusing.

    • PupBiru@kbin.social
      link
      fedilink
      arrow-up
      8
      arrow-down
      8
      ·
      edit-2
      9 months ago

      kilobyte (KB) is 1000, kibibyte (KiB) is 1024

      at least according the the IEC, and id tend to go with them… SI units say that kilo means 1000

      • PsychedSy@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        18
        arrow-down
        1
        ·
        9 months ago

        That was a retcon, though. Initially the SI prefixes were used and used 1024 instead of 1000. I feel like people started getting more fussy about it as hard drives started hitting hundreds of gb.

        • Eyron@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          edit-2
          9 months ago

          How do you define a recon? Were kilograms 1024 grams, too? When did that change? It seems it’s meant 1000 since metric was created in the 1700s, along with a binary prefix.

          From the looks of it, software vendors were trying to recon the definition of “kilo” to be 1024.

          • PsychedSy@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 months ago

            Kilo was used outside of decimal power rules for data storage/memory because it could only use binary powers at smaller scales. Well, that’s the standard we went with anyway.

            They didn’t ‘retcon’ the use of kilo as applicable to other units, they went with the closest power of two. When hard drive manufacturers decided to use power of tens it confused people and eventually got standardized by making kb power of ten and kib power of two.

            From the looks of it you aren’t familiar with the situation.

            • Eyron@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              edit-2
              9 months ago

              This is all explained in the post we’re commenting on. The standard “kilo” prefix, from the metric system, predates modern computing and even the definition of a byte: 1700s vs 1900s. It seems very odd to argue that the older definition is the one trying to retcon.

              The binary usage in software was/is common, but it’s definitely more recent, and causes a lot of confusion because it doesn’t match the older and bigger standard. Computers are very good at numbers, they never should have tried the hijack the existing prefix, especially when it was already defined by existing International standards. One might be able to argue that the US hadn’t really adopted the metric system at the point of development, but the usage of 1000 to define the kilo is clearly older than the usage of 1024 to define the kilobyte. The main new (last 100 years) thing here is 1024 bytes is a kibibyte.

              Kibi is the recon. Not kilo.

              • wewbull@feddit.uk
                link
                fedilink
                English
                arrow-up
                3
                ·
                9 months ago

                Kilo meaning 1,000 inside computer science is the retcon.

                Tell me, how much RAM do you have in your PC. 16 gig? 32 gig?

                Surely you mean 17.18 gig? 34.36 gig?

        • abhibeckert@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          2
          ·
          edit-2
          9 months ago

          Initially the SI prefixes were used and used 1024 instead of 1000

          Only CPUs and RAM use 1024. Floppy disks and hard drives going way back to the 1970’s used 1000. In software, both are used depending on the context (and also obviously depending on the software). Most modern operating systems use 1024 for RAM and 1000 for file sizes (in the early days of computing, that agreed upon approach didn’t exist, and it varied from one computer to the next).

          @smokin_shinoby’s tech school was shit. There has never been consistency on this issue and it’s really sad that they failed to teach both numbering systems as they are (and always were) widely used.

      • Hyperreality@kbin.social
        link
        fedilink
        arrow-up
        14
        ·
        edit-2
        9 months ago

        That’s a relatively recent change though. AFAIK KB=1024 and MB=1024^2 was more common. As the article mentions, it’s still commonly used in some sectors:

        https://www.jedec.org/standards-documents/dictionary/terms/mega-m-prefix-units-semiconductor-storage-capacity

        If you ask someone in their twenties, they’re going to say 1000. If you ask someone who’s older, or someone who knows a lot about disk storage they’re likely to say 1024. Hell, as the article mentions windows uses the 1024 definition, which is one of the rasons why drives always seem smaller than their advertised size. The box says 250 GB, but when you install it windows says it’ll say it’s less than that. It’s not actually less than 250 GB. It’s just that windows is using GiB/Gibibytes but calling them GB/Gigabytes.

        TLDR: no wonder people are confused.

  • KinNectar@kbin.run
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    9 months ago

    Nice to learn about the SI standard notation KiB, MiB, etc. I had no idea.

    • wischi@programming.devOP
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      3
      ·
      9 months ago

      KiB and MiB are not SI prefixes but IEC binary prefixes but the names are derived from the SI names for simplicity.