• Etterra@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    3
    ·
    5 days ago

    Okay, so why can’t we just not use exponentially growing values? Like 96 bit (64 + 36). I’d the something intrinsic about the size increases that they HAVE to be exponential? Why not linear scaling? 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, etc.

    • wewbull@feddit.uk
      link
      fedilink
      English
      arrow-up
      15
      ·
      5 days ago

      We can, but it’s awkward to do so. By having everything work with powers of 2 you don’t need to have everything the same size, but can still pack things in memory efficiently.

      If your registers were 48bits long, you can use it to store 6 bytes, or 3 short ints, but only one int with 16-bits going unused. If they are powers of two in size, you can always fit smaller things in them with no wasted space.

      • asmoranomar@lemmy.world
        link
        fedilink
        English
        arrow-up
        11
        ·
        5 days ago

        A better example is to explain the chaos of having to go to the grocery store and pick up some hot dogs and buns. You know the pain.

    • SorteKanin@feddit.dk
      link
      fedilink
      English
      arrow-up
      7
      ·
      5 days ago

      Because CPU registers are all powers of 2, i.e. exponential in this fashion. And it’s also just the same reason - 64 is high enough, why go to 96 or 80 or something?

    • friend_of_satan@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      5 days ago

      In binary, when you add one more numeric place, things double. Not doubling would be like having two digit decimal numbers but only allowing people to count to 50.