Какой из следующих методов является лучшим вариантом для деления целого числа на 2 и почему?
Техника 1:
x = x >> 1;
Техника 2:
x = x / 2;
Вот xцелое число.
x = x >>> 1. Также обратите внимание, что в зависимости от платформы и компилятора может быть разумно вручную оптимизировать деления и умножения, используя сдвиги. - Думая о микроконтроллерах, например, без прямой поддержки ALU для умножения.
x /= 2потому что x >>= 1выглядит слишком похоже на монадное связывание;)
x = x / 2вместо x /= 2. Субъективное предпочтение может быть :)
⬜=комбинации, их следует использовать, когда это возможно. Он устраняет шум и акцентирует внимание на том факте, что xон изменен , в то время как общий =оператор скорее предполагает, что он принимает совершенно новое значение, независимое от старого. - Всегда избегать комбинированных операторов (так что это читаемое так , кто знает только математические оператор) может иметь свою точку , а также, но тогда вы должны были бы отказаться от крайне полезных ++, --, +=тоже.
xснова, ни один из них не подходит таким образом: он должен быть либо,x >>= 1либо вx /= 2зависимости от того, что вы намерены выразить с помощью операции. Не потому, что это быстрее (любой современный компилятор все равно скомпилирует все эквивалентные варианты в одинаковую, быструю сборку), а потому, что это менее запутанно.