ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
439339 Топик полностью
Bill (07.09.2013 13:07, просмотров: 62) ответил Юра на Гм... Это же не вопрос невозможности, правда? Что мешает учесть нечётность? Сдвиг+сложение все равно гораздо быстрее эмуляции деления.
Так и я о том же. Замена возможна, и даже с учетом нечетности будет выполняться быстрее. Но... Лучше это все оставить компилятору. Если он "знает" как это сделать, он сделает. Если делать самому, не зная всех нюансов, можно попасть впросак. Кстати, я сам об этом давно знал, но как-то особо не задумывался. Поэтому полагал, что сдвиг -1 вправо на 1 является исключением. Ан нет, не так давно мне указали, что это не исключение. Сдвиг любого нечетного отрицательного числа вправо не является корректной заменой операции деления на 2. И тогда мне стало понятно, как такая замена делается в GCC.