2¹⁶-1 & 2⁵ = 2⁵ (або? Очевидно?)
Сьогодні розробник запитав мене, що таке побітове значення 65535 & 32, тобто 2¹⁶-1 & 2⁵ =? Спочатку я подумав спонтанно 32, але здавалося легко, після чого я подумав кілька хвилин, а потім відповів 32. 32 здається, це була правильна відповідь, але як? 65535 = 2¹⁶-1 = 1111111111111111 (але це не здається правильним, оскільки це двійкове число все повинно бути -1 (?)), 32 = 100000, але я не міг перетворити це в голові, після чого я все одно відповів 32, оскільки мав відповісти на щось. Чи відповідь 32 насправді тривіальна? Чи однаково 2¹⁶-1 & 2⁵-1 = 31? Чому розробник запитав мене приблизно про 65535?
Двійкове те, що мене попросили оцінити, було 1111111111111111 та 100000, але я не розумію, чому 1111111111111111 не -1. Чи не повинно бути -1? Чи є 65535 число, яке дає переповнення, і як я можу це знати?