Алгоритми та структури даних · Middle · Запитання 62 з 75
Що робить x & (x - 1) для додатного цілого x?
- 1Повертає кількість встановлених бітів у числі
- 2Зсуває число на один біт ліворуч, як множення на 2
- ✓Правильна відповідь: Скидає наймолодший одиничний біт (0 для степенів двійки)
Пояснення
Віднімання 1 інвертує наймолодшу одиницю й нулі під нею, а AND прибирає цей біт. Тож x & (x - 1) === 0 перевіряє степінь двійки, а повторення операції рахує встановлені біти.