you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 1 year ago* (last edited 1 year ago) (2 children)

And we're talking about a value that would require a 9-bit unsigned int to store it, at a minimum (and therefore at least a 16-bit integer in sizes that actually exist for types). Unless it's 8-bit and interprets a 0 as 256, which is highly unorthodox and would require bespoke coding basically all over instead of a basic num <= GROUP_CHAT_LIMIT.

I think you're just very confused friend, or misunderstanding how binary counting works, because why in the 9 hells would they be using 9 bits (512 possible values) to store 8 bits (256 possible members) of data?

I think you're confusing indexing (0-255) with counting (0-256), and mistakenly including a negation state (counting 0, which would be a null state for the variable) in your conception of the process. Because yes, index 255 is in fact count 256 and 0 would actually be 1. Index = count -1

  • source
  • parent
  • hideshow 2 child comments
  • [–] -1 points 1 year ago (1 child)

    I'm imagining something like this:

    def add_member(group, user):
        if (len(group.members) <= GROUP_CHAT_LIMIT):
            ...
    

    If GROUP_CHAT_LIMIT is 8 bits, this does not work.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 1 year ago

    So add a +1 like you would for any index to count comparison?

    I guess I'm failing to see how this doesn't work as long as you properly handle the comparison logic. Maybe you can explain how this doesn't work...

  • source
  • parent