2¹⁶-1 & 2⁵ = 2⁵ (ou? Obviamente?)
Um desenvolvedor me perguntou hoje o que é bit a bit 65535 & 32, ou seja, 2¹⁶-1 & 2⁵ =? A princípio, pensei espontaneamente 32, mas pareceu fácil. Pensei por vários minutos e depois respondi 32. 32 parece ter sido a resposta correta, mas como? 65535 = 2¹⁶-1 = 1111111111111111 (mas não parece certo, pois todos esses números binários devem ser -1 (?)), 32 = 100000, mas eu não conseguia converter isso na minha cabeça, pelo que respondi 32 de qualquer maneira para responder alguma coisa. A resposta 32 é de fato trivial? É da mesma maneira 2¹⁶-1 & 2⁵-1 = 31? Por que o desenvolvedor me perguntou exatamente 65535?
O binário que me pediram para avaliar foi 1111111111111111 & 100000, mas não entendo por que 111111111111111111 não é -1. Não deveria ser -1? 65535 é um número que fornece estouro e como eu sei disso?