Oui, je comprends comment travailler avec des chiffres binaires.
De ce code il ressort, par exemple, que la fonction a renvoyé 3 .
(11&1)==1 ; 11==01 non, c'est faux, ça n'a pas marché.
J'étais en train d'écrire ça et je me suis dit que j'avais peut-être mal compris les opérations.
& cela signifie que je convertis les valeurs décimales en valeurs binaires et que je fais une conjonction par bit.
== vrai lorsque le premier terme est égal au second. Est-ce correct ?
C'est le genre de choses que je ne comprends pas, je suis autodidacte. Je sais juste comment vérifier et ce que je peux obtenir. Votre exemple (11&1)==1 donnera un résultat vrai puisque 11 ne peut être composé que des drapeaux 1+2+8 ; le 1 est donc inclus dans l'ensemble.
Alexey Viktorov: C'est le genre de choses que je ne comprends pas, je suis autodidacte. Je sais juste comment vérifier et ce que je peux obtenir. Votre exemple (11&1)==1 aboutira à vrai puisque 11 ne peut être composé que des drapeaux 1+2+8 ; le 1 est donc inclus dans l'ensemble.
Vérifiez ce qui sera retourné
C'est ce que j'ai écrit en binaire, j'ai oublié de le préciser. J'ai substitué les valeurs dans le code que j'ai écrit si la fonction retournait 3 et je l'ai comparé à FOK. C'est ainsi que s'écrit le binaire. (0b11 & 0b1)==0b1 ; le résultat entre parenthèses 0b11 a l'expression 0b11==0b1 ; mais il s'avère faux, à mon avis. Il faut que ce soit vrai pour que tout fonctionne. Eh bien, puisque cet échantillon est dans l'aide, c'est vrai. J'ai dû mal comprendre quelque chose. J'ai maintenant regardé l'aide de C, et celle de mql avant cela. Il semble que ce soit la même chose. Je m'excuse si je pose des questions très stupides et je vous remercie tous pour les réponses.
L'aide mql indique que la valeur true est toute valeur non nulle, ce doit donc être la réponse. Et puis l'égalité, et en C l'égalité. Il s'avère que ce n'est pas une égalité, mais si les termes comparés sont supérieurs à zéro, alors la valeur est vraie. Je suppose que oui. L'écriture n'est pas très claire. Il s'agit de l'opérateur ==.
Внутреннее представление – целое число размером 1 байт. Необходимо отметить, что в логических выражениях допустимо использовать вместо типа bool другие целые или...
Une opération par bit, c'est une opération P O B I T O R T . Il fonctionne avec des bits. Par exemple, 1 est 00000001. 2 est 00000010. Un drapeau ne peut être que de 1, 2, 4, 8, etc. En bref, un bit est occupé.
Et un ensemble de drapeaux peut avoir n'importe quel bit occupé, par exemple 00000101. Cet ensemble comprend les drapeaux 00000001 et 00000100. Et pour savoir si un drapeau est inclus dans l'ensemble des drapeaux, vous devez faire un "et" bit à bit du drapeau et de l'ensemble, si cela laisse un drapeau, cela signifie qu'il est dans l'ensemble :
(00000101& 00000100) == 00000100 - vrai. Cela signifie qu'il y a un drapeau 00000101 dans le jeu 00000101.
Une opération par bit, c'est une opération P O B I T O R T . Il fonctionne avec des bits. Par exemple, 1 est 00000001. 2 est 00000010. Un drapeau ne peut être que de 1, 2, 4, 8, etc. En bref, un bit est occupé.
Et un ensemble de drapeaux peut avoir n'importe quel bit occupé, par exemple 00000101. Cet ensemble comprend les drapeaux 00000001 et 00000100. Et pour savoir si un drapeau est inclus dans l'ensemble des drapeaux, vous devez faire un "et" bit à bit du drapeau et de l'ensemble, si cela laisse un drapeau, cela signifie qu'il est dans l'ensemble :
(00000101& 00000100) == 00000100 - vrai. Cela signifie qu'il y a un drapeau 00000101 dans le jeu 00000101.
Est-il vrai que (terme positif 1 == terme positif 2) mais que le terme positif 1 n'est pas égal au terme positif 2 ? Il s'avère que oui, car l'aide indique que la vérité est toute valeur non nulle, et le code fonctionne.
Ivan_Invanov: Est-il vrai que (terme positif 1 == terme positif 2) mais que le terme positif 1 n'est pas égal au terme positif 2 ? Il s'avère que oui, car l'aide indique que la vérité est toute valeur non nulle, et le code fonctionne.
Ce qui me trouble, c'est que le mot égalité est écrit ensuite.
Dmitry Fedoseev: A quel endroit de la référence ? Où et quoi exactement ?
Il me semble qu'il y a là une contradiction. Elle est vraie non pas si a est égal à b, mais si a et b sont différents de zéro. Eh bien, ce n'est pas une contradiction, ce n'est pas clairement écrit. Je pense que je l'ai, merci.
ENUM_SYMBOL_TRADE_EXECUTION Il ne dit pas de quel type il s'agit, et les en-têtes dans l'aide sont mélangés (il semblait être écrit pour les chaînes de caractères, puis sans le mentionner a commencé à parler des entiers). J'ai essayé les trois options, mais à chaque fois une erreur de compilation. Qu'est-ce qui ne va pas ?
Ivan_Invanov: ENUM_SYMBOL_TRADE_EXECUTION Il ne dit pas quel type il a, et les en-têtes dans l'aide sont mélangés (il semblait être écrit pour la chaîne de caractères, et puis sans le mentionner a commencé à parler des entiers) . J'ai essayé les trois options, mais à chaque fois une erreur de compilation. Qu'est-ce qui ne va pas ?
Oui, je comprends comment travailler avec des chiffres binaires.
De ce code il ressort, par exemple, que la fonction a renvoyé 3 .
(11&1)==1 ; 11==01 non, c'est faux, ça n'a pas marché.
J'étais en train d'écrire ça et je me suis dit que j'avais peut-être mal compris les opérations.
& cela signifie que je convertis les valeurs décimales en valeurs binaires et que je fais une conjonction par bit.
== vrai lorsque le premier terme est égal au second. Est-ce correct ?
Vérifiez ce qui sera retourné
C'est le genre de choses que je ne comprends pas, je suis autodidacte. Je sais juste comment vérifier et ce que je peux obtenir. Votre exemple (11&1)==1 aboutira à vrai puisque 11 ne peut être composé que des drapeaux 1+2+8 ; le 1 est donc inclus dans l'ensemble.
Vérifiez ce qui sera retourné
Une opération par bit, c'est une opération P O B I T O R T . Il fonctionne avec des bits. Par exemple, 1 est 00000001. 2 est 00000010. Un drapeau ne peut être que de 1, 2, 4, 8, etc. En bref, un bit est occupé.
Et un ensemble de drapeaux peut avoir n'importe quel bit occupé, par exemple 00000101. Cet ensemble comprend les drapeaux 00000001 et 00000100. Et pour savoir si un drapeau est inclus dans l'ensemble des drapeaux, vous devez faire un "et" bit à bit du drapeau et de l'ensemble, si cela laisse un drapeau, cela signifie qu'il est dans l'ensemble :
(00000101& 00000100) == 00000100 - vrai. Cela signifie qu'il y a un drapeau 00000101 dans le jeu 00000101.
Une opération par bit, c'est une opération P O B I T O R T . Il fonctionne avec des bits. Par exemple, 1 est 00000001. 2 est 00000010. Un drapeau ne peut être que de 1, 2, 4, 8, etc. En bref, un bit est occupé.
Et un ensemble de drapeaux peut avoir n'importe quel bit occupé, par exemple 00000101. Cet ensemble comprend les drapeaux 00000001 et 00000100. Et pour savoir si un drapeau est inclus dans l'ensemble des drapeaux, vous devez faire un "et" bit à bit du drapeau et de l'ensemble, si cela laisse un drapeau, cela signifie qu'il est dans l'ensemble :
(00000101& 00000100) == 00000100 - vrai. Cela signifie qu'il y a un drapeau 00000101 dans le jeu 00000101.
Est-il vrai que (terme positif 1 == terme positif 2) mais que le terme positif 1 n'est pas égal au terme positif 2 ? Il s'avère que oui, car l'aide indique que la vérité est toute valeur non nulle, et le code fonctionne.
A quel endroit de la référence ? Où et quoi exactement ?
Il me semble qu'il y a là une contradiction. Elle est vraie non pas si a est égal à b, mais si a et b sont différents de zéro. Eh bien, ce n'est pas une contradiction, ce n'est pas clairement écrit. Je pense que je l'ai, merci.
ENUM_SYMBOL_TRADE_EXECUTION Il ne dit pas quel type il a, et les en-têtes dans l'aide sont mélangés (il semblait être écrit pour la chaîne de caractères, et puis sans le mentionner a commencé à parler des entiers) . J'ai essayé les trois options, mais à chaque fois une erreur de compilation. Qu'est-ce qui ne va pas ?
Tu dois le faire de cette façon :