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