Выражение (1 << N)
использует битовое смещение в c #.
В этом случае оно используется для выполнения быстрой целочисленной оценки 2 ^ N, где n равно от 0 до 30.
Хороший инструмент для молодых разработчиков whippersnappers , которые не понимают, как работают сдвиги битов, - это Windows Calc в режиме программиста, который визуализирует влияние сдвигов на числа со знаком разного размера.Функции Lsh
и Rsh
равны <<
и >>
соответственно.
Оценка с использованием Math.Pow внутри условия цикла (в моей системе) примерно в 7 раз медленнее, чем код вопроса дляN = 10, зависит ли это от контекста.
Кэширование «счетчика циклов» в отдельной переменной немного ускорило бы его, поскольку выражение, включающее длину списка, не нужно пересматривать в каждомитерации.