Sim, eu entendo como trabalhar com dígitos binários.
A partir deste código sai, por exemplo, a função devolvida 3 .
(11&1)==1 ; 11===01 não, isso é falso, não funcionou.
Eu estava apenas escrevendo isto e pensei que talvez eu tivesse entendido mal as operações.
e isso significa que converto valores decimais em binários e faço uma pequena conjunção.
== verdadeiro quando o primeiro termo é igual ao segundo termo. Isto é correto?
Isto é o que eu não entendo, eu sou autodidata. Eu só sei como verificar e o que posso conseguir. Seu exemplo (11&1)==1 resultará em verdade, já que 11 só pode ser composto de bandeiras 1+2+8, portanto 1 está incluído no conjunto.
Alexey Viktorov: Isto é o que eu não entendo, eu sou autodidata. Eu só sei como verificar e o que posso conseguir. Seu exemplo (11&1)==1 resultará em verdadeiro, pois 11 só pode ser composto de bandeiras 1+2+8, portanto 1 está incluído no conjunto.
Verifique o que será devolvido
Isto é o que escrevi em binário, esqueci de especificar. Eu substituí os valores no código que escrevi se a função retornasse 3 e o comparei com FOK. É assim que se escreve o binário. (0b11 & 0b1)==0b1 ; o resultado entre parênteses 0b11 tem a expressão 0b11==0b1 ; mas se revela falso, em minha opinião. Deve ser verdade para que tudo funcione. Bem, já que esta amostra está na ajuda, é verdade. Eu devo ter entendido mal alguma coisa. Agora olhei para a ajuda C, e para a ajuda Mql antes disso. Parece ser a mesma coisa. Peço desculpas se estou fazendo perguntas muito bobas e agradeço a todos vocês pelas respostas.
A ajuda do mql diz que o valor verdadeiro é qualquer valor não zero, portanto, essa deve ser a resposta. E depois a igualdade, e em C a igualdade. Acontece que não é igualdade, mas se os termos comparados forem maiores que zero, então o valor é verdadeiro. Acho que sim. Está escrito de forma pouco clara. É sobre o == operador.
Внутреннее представление – целое число размером 1 байт. Необходимо отметить, что в логических выражениях допустимо использовать вместо типа bool другие целые или...
Uma operação um pouco mais ampla, esta é uma operação P O B I T O R T. Funciona com bits. Por exemplo, 1 é 00000001. 2 é 00000010. Uma bandeira só pode ser 1, 2, 4, 8, etc. Em resumo, um pouco está ocupado.
E um conjunto de bandeiras pode ter qualquer pedaço ocupado, por exemplo, 00000101. Este conjunto inclui as bandeiras 00000001 e 00000100. E para descobrir se alguma bandeira está incluída no conjunto de bandeiras, você tem que fazer um pouco "e" da bandeira e do conjunto, se ela deixar uma bandeira, significa que ela está no conjunto:
(0000010101& 00000100) == 00000100 - verdadeiro. Isto significa que há uma bandeira 00000101 no conjunto 00000101.
Uma operação um pouco mais ampla, esta é uma operação P O B I T O R T. Funciona com bits. Por exemplo, 1 é 00000001. 2 é 00000010. Uma bandeira só pode ser 1, 2, 4, 8, etc. Em resumo, um pouco está ocupado.
E um conjunto de bandeiras pode ter qualquer pedaço ocupado, por exemplo, 00000101. Este conjunto inclui as bandeiras 00000001 e 00000100. E para descobrir se alguma bandeira está incluída no conjunto de bandeiras, você tem que fazer um pouco "e" da bandeira e do conjunto, se ela deixar uma bandeira, significa que está no conjunto:
(0000010101& 00000100) == 00000100 - verdadeiro. Isto significa que há uma bandeira 00000101 no conjunto 00000101.
É verdade que (termo positivo 1 == termo positivo 2) mas o termo positivo 1 não é igual ao termo positivo 2? Acontece que sim, porque a ajuda diz que a verdade é qualquer valor não zero, e então o código funciona.
Ivan_Invanov: É verdade que (termo positivo 1 == termo positivo 2) mas o termo positivo 1 não é igual ao termo positivo 2? Acontece que sim, porque a ajuda diz que a verdade é qualquer valor não zero, e então o código funciona.
O que me confunde é que a palavra igualdade é escrita a seguir.
Dmitry Fedoseev: Em que lugar da referência? Onde e o quê?
Isto me parece ser uma contradição. Não é verdade se a é igual a b, mas se a e b são diferentes de zero. Bem, não é uma contradição, não está claramente escrito. Acho que consegui, obrigado.
ENUM_SYMBOL_TRADE_EXECUTION Não diz que tipo é, e os cabeçalhos de ajuda são misturados (parecia ser escrito para string, e depois sem mencionar começou a falar sobre inteiros). Eu tentei todas as três opções, mas cada vez que cometi um erro de compilação. O que está errado?
Ivan_Invanov: ENUM_SYMBOL_TRADE_EXECUTION Não diz que tipo tem, e os cabeçalhos em ajuda são misturados (parecia ser escrito para string, e depois sem mencionar começou a falar de inteiros) . Eu tentei todas as três opções, mas cada vez que cometi um erro de compilação. O que está errado?
Sim, eu entendo como trabalhar com dígitos binários.
A partir deste código sai, por exemplo, a função devolvida 3 .
(11&1)==1 ; 11===01 não, isso é falso, não funcionou.
Eu estava apenas escrevendo isto e pensei que talvez eu tivesse entendido mal as operações.
e isso significa que converto valores decimais em binários e faço uma pequena conjunção.
== verdadeiro quando o primeiro termo é igual ao segundo termo. Isto é correto?
Verifique o que será devolvido
Isto é o que eu não entendo, eu sou autodidata. Eu só sei como verificar e o que posso conseguir. Seu exemplo (11&1)==1 resultará em verdadeiro, pois 11 só pode ser composto de bandeiras 1+2+8, portanto 1 está incluído no conjunto.
Verifique o que será devolvido
Uma operação um pouco mais ampla, esta é uma operação P O B I T O R T. Funciona com bits. Por exemplo, 1 é 00000001. 2 é 00000010. Uma bandeira só pode ser 1, 2, 4, 8, etc. Em resumo, um pouco está ocupado.
E um conjunto de bandeiras pode ter qualquer pedaço ocupado, por exemplo, 00000101. Este conjunto inclui as bandeiras 00000001 e 00000100. E para descobrir se alguma bandeira está incluída no conjunto de bandeiras, você tem que fazer um pouco "e" da bandeira e do conjunto, se ela deixar uma bandeira, significa que ela está no conjunto:
(0000010101& 00000100) == 00000100 - verdadeiro. Isto significa que há uma bandeira 00000101 no conjunto 00000101.
Uma operação um pouco mais ampla, esta é uma operação P O B I T O R T. Funciona com bits. Por exemplo, 1 é 00000001. 2 é 00000010. Uma bandeira só pode ser 1, 2, 4, 8, etc. Em resumo, um pouco está ocupado.
E um conjunto de bandeiras pode ter qualquer pedaço ocupado, por exemplo, 00000101. Este conjunto inclui as bandeiras 00000001 e 00000100. E para descobrir se alguma bandeira está incluída no conjunto de bandeiras, você tem que fazer um pouco "e" da bandeira e do conjunto, se ela deixar uma bandeira, significa que está no conjunto:
(0000010101& 00000100) == 00000100 - verdadeiro. Isto significa que há uma bandeira 00000101 no conjunto 00000101.
É verdade que (termo positivo 1 == termo positivo 2) mas o termo positivo 1 não é igual ao termo positivo 2? Acontece que sim, porque a ajuda diz que a verdade é qualquer valor não zero, e então o código funciona.
Em que lugar da referência? Onde e o quê?
Isto me parece ser uma contradição. Não é verdade se a é igual a b, mas se a e b são diferentes de zero. Bem, não é uma contradição, não está claramente escrito. Acho que consegui, obrigado.
ENUM_SYMBOL_TRADE_EXECUTION Não diz que tipo tem, e os cabeçalhos em ajuda são misturados (parecia ser escrito para string, e depois sem mencionar começou a falar de inteiros) . Eu tentei todas as três opções, mas cada vez que cometi um erro de compilação. O que está errado?
Você tem que fazer desta maneira: