2¹⁶-1 & 2⁵ = 2⁵ (o? Ovviamente?)
Uno sviluppatore mi ha chiesto oggi cosa sono 65535 bit a bit e 32 ie 2¹⁶-1 & 2⁵ =? All'inizio ho pensato spontaneamente a 32, ma mi è sembrato facile dopo di che ho pensato per diversi minuti e poi ho risposto a 32. 32 sembra essere stata la risposta corretta, ma come? 65535 = 2¹⁶-1 = 1111111111111111 (ma non sembra giusto dal momento che questo numero binario tutti dovrebbero essere -1 (?)), 32 = 100000 ma non sono riuscito a convertirlo nella mia testa, dopo di che ho comunque risposto 32 dato che avevo per rispondere a qualcosa. La risposta 32 è in effetti banale? È allo stesso modo 2¹⁶-1 e 2⁵-1 = 31? Perché lo sviluppatore mi ha chiesto esattamente 65535?
Binario quello che mi è stato chiesto di valutare era 1111111111111111 e 100000 ma non capisco perché 1111111111111111 non sia -1. Non dovrebbe essere -1? 65535 è un numero che genera overflow e come faccio a saperlo?