Який із наведених методів є найкращим варіантом ділення цілого числа на 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
залежно від того, що ви маєте намір висловити під час операції. Не тому, що це швидше (будь-який сучасний компілятор збирає всі еквівалентні варіанти в однакові, швидкі збірки все одно), а тому, що він менш заплутаний.