Особенности языка mql5, тонкости и приёмы работы - страница 116
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
(устало) если бы в этом была проблема, то вылезла бы ошибка "'k' - redefinition; different type modifiers", но на скрине её нет. Значит компилятору все равно и дело не в этом.
Ну-ну...
Ну-ну...
Ну попробуйте сами откомпилировать. Если не лень посты писать на эту тему на форуме, должно быть не лень и загнать в редактор и нажать F7. Это гораздо быстрее.
Быстрый способ вычисления двоичного логарифма целого числа. Работает в 3-5 раз быстрее, чем расчёт через MathLog.
Быстрый способ вычисления двоичного логарифма целого числа. Работает в 3-5 раз быстрее, чем расчёт через MathLog.
Я использую такую функцию (чистое шаманство, но работает):
Обе функции дают правильный одинаковый ответ, ошибок я не нашел.
Интересно сравнить скорость работы. В моем варианте - чуть меньше операций сдвига и сложения, но в конце есть умножение. В варианте Алексея - операций сдвига и сложения чуть больше, но умножения нет. Как быстрее ?
В моем варианте - чуть меньше операций сдвига и сложения, но в конце есть умножение. В варианте Алексея - операций сдвига и сложения чуть больше, но умножения нет. Как быстрее ?
У меня операций сдвига и сложения - не более 6 (бинарный поиск). Сдвиг (ulong)1<<k не считается, т.к. это константа. Единственное что там идёт ещё и проверка условия. У вас проверки условия нет, но зато операций всегда 6, плюс умножение, плюс ещё один сдвиг, плюс доступ к управляемому массиву (т.е. проверка индекса). Так что по скорости очевидно ваш вариант будет медленней - это и к бабке не ходи :)
Да и выглядит ваш вариант конечно мистически )
p.s. У меня есть предположение, что если мой код развернуть в цепочку сравнений через if-else, избавившись от всех арифметических операций, то можно получить колоссальное ускорение. Но это большая портянка кода получится. Вот если бы можно было использовать рекурсию в макросах...
Интересно сравнить скорость работы.
Таки вариант log2 быстрее.
Таки вариант log2 быстрее.
Понял.
Заменяю свою функцию.