Особенности языка mql5, тонкости и приёмы работы - страница 312
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите, пожалуйста, почему в одном случае возникает ошибка, а в другом - нет.
Спасибо!
Калькулятор приблизительного целочисленного деления на константу.
Я только что просмотрел это, и это уже называется"сдвиг и сложение".
Для определенных множителей, таких как умножение на 10, результат будет точным.
https://www.wikiwand.com/en/articles/Multiplication_algorithm#Usage_in_computers
В основании два длинное умножение иногда называют "сдвиг и сложение", потому что алгоритм упрощается и состоит только из сдвига влево (умножение на степень двойки) и сложения.
Я только что просмотрел это, и это уже называется"сдвинуть и добавить".
Для некоторых множителей, например умножения на 10, результат будет точным.
https://www.wikiwand.com/en/articles/Multiplication_algorithm#Usage_in_computers
В основании два длинное умножение иногда называют "сдвигом и сложением", потому что алгоритм упрощается и состоит только из сдвига влево (умножение на степень двойки) и сложения.
.
https://www.mql5.com/en/forum/393227/page280#comment_55325243
Существует также библиотека, оптимизирующая целочисленное деление с помощью констант времени компиляции, см. https://libdivide.com/.
Она, по сути, преобразует делитель в приблизительный множитель:fast_d = libdivide_s32_gen( divisor);
Минимальная реализация алгоритма fastdiv (описана здесь https://www.wikiwand.com/en/articles/Division_algorithm?ai=topQs#Division_by_a_constant).
Это демонстрирует, как компилятор может оптимизировать деление на константу времени компиляции (до умножения и сдвига).
NB: эта оптимизация fastdiv не может быть применена для делителей, которые не известны во время компиляции (например, деление на переменную времени выполнения).