• Etterra@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    3
    ·
    1 year 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
      ·
      1 year 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
        ·
        1 year 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
      ·
      1 year 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?