Почему bitmask'и следует пихать только 30/62 значения для 32/64 int'ов. Читал книгу и написано только 30/62 юзать:
( To avoid issues with the
two’s complement representation, use a 32-bit/64-bit signed integer to represent bitmasks of up to
30/62 items only, respectively )
Как я понял самый левый бит отвечает за +-, но почему тогда не 31/63 элемента использовать, зачем оставлять еще один пустой элемент в bitmask'e?
Потому-что автор пронумеровал биты начиная с нуля. Получилось, что предпоследний - номер 30.
Обсуждают сегодня