Ошибки, баги, вопросы - страница 3612

 

Интересно, почему для C#  Microsoft разделяет [Logical AND operator &, Logical OR operator |Logical exclusive OR operator ^] и bitwise версии этих операторов. При этом их C++ reference говорит только про bitwise версии (как и документация по MQL). Я слаб в побитовой арифметике. Logical и bitwise версии это одно и то же или нет? Будут ли в MQL побитовые операторы примененные к bool операндам работать так же, как это описывается по ссылкам, которые я привел?

 
Alexey Viktorov #:

Видимо я не смогу объяснить так, чтобы было понятно…

Вот смотри… Казалось бы переменной уже присвоено новое значение, ан нет, пока ещё j равна 2



Именно в этой иллюстрации явный баг. Переменная уже должна быть инициализирована новым значением, но отладчик отображает предыдущее.
 
Vladislav Boyko #:
Logical и bitwise версии это одно и то же или нет?

Совсем нет. Побитовые - это когда идёт работа с машинным представлением числа(или символа, ...) как с набором битовых флагов. В первом приближении это можно представить как структуры булевых переменных и логические операции над такими структурами.

 
Sergey Gridnev #:

Именно в этой иллюстрации явный баг. Переменная уже должна быть инициализирована новым значением, но отладчик отображает предыдущее.

А тут вариантов только два. Или разработчики исправят, или надо помнить о таких вариантах и не пытаться применять всяческие извращения которые зачастую приводят к непредсказуемому результату.

 
JRandomTrader #:

Совсем нет. Побитовые - это когда идёт работа с машинным представлением числа(или символа, ...) как с набором битовых флагов. В первом приближении это можно представить как структуры булевых переменных и логические операции над такими структурами.

То есть, вот это и вот это - разные вещи, я правильно понимаю?

 
Vladislav Boyko #:

То есть, вот это и вот это - разные вещи, я правильно понимаю?

Там же видно, что разные. Но да, как-то не по-людски там сделано.

 
Vladislav Boyko #:

То есть, вот это и вот это - разные вещи, я правильно понимаю?

Просто, если операнды булевы, то их значения: 0 или 1. Результаты логических операций | и & с такими операндами тоже 0 или 1, они преобразуются в булевы "ложь" и "истина". А сами операции по ссылкам одинаковы.
 
Sergey Gridnev #:
Просто, если операнды булевы, то их значения: 0 или 1. Результаты логических операций | и & с такими операндами тоже 0 или 1, они преобразуются в булевы "ложь" и "истина". А сами операции по ссылкам одинаковы.

Я понял одно - нужно изучать побитовые операции😁

Если под капотом одно и то же, то я понял причину разделения на разные операторы - у них нельзя неявно преобразовывать int <--> bool:

Явно тоже нельзя, к стати


 

Почему у различных инструментов разная ширина графика в барах?

Например, у меня у XTIUSD - 230, у EURUSD - 229, у US30 - 228 баров.

Кто-нибудь может объяснить?

 
Andrei Iakovlev #:

Почему у различных инструментов разная ширина графика в барах?

Например, у меня у XTIUSD - 230, у EURUSD - 229, у US30 - 228 баров.

Кто-нибудь может объяснить?

Может праздники и выходные разные. А в чем разница для работы ?