qu'est ce que cette instruction signifie:
???
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((nrow >= 6) && (~nrow&0x01) && (ncol >= 6) && (~ncol&0x01))
avec nrow et ncol deux entiers
qu'est ce que cette instruction signifie:
???
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((nrow >= 6) && (~nrow&0x01) && (ncol >= 6) && (~ncol&0x01))
avec nrow et ncol deux entiers
C'est difficile à dire mais ~ et & sont des opérateurs sur les binaires:
"complément à un" et "et logique" respectivement.
~nrow&0x01 teste si le premier bit de nrow est à 0
edit: j'ai rien dit
j'ai l'impression que ça teste la parité de nrow et ncol??
mais j'en suis absolument pas sur
Au fait ~ est prioritaire sur &?
Pourquoi 0x01 et pas 1 tout court?
Bon après avoir testé plein de valeurs, il me semble bien que ça test la parité, pour savoir pourquoi c'est 0x01, j'en ai aucune idée???
Si ça ma l'air d'être ça.Envoyé par Gruik
Qu'est ce qui ne va pas?
Cela revient en effet à tester la parité.
D'où l'utilité des commentaires dans les programmesEnvoyé par gronaze
signifie que nrow est pair
Code : Sélectionner tout - Visualiser dans une fenêtre à part (~nrow&0x01)
signifie que nrow est pair et est différent de 0 et de 2 (et de -2, -4, ... si c'est un entier signé). Même chose pour ncol
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((nrow >= 6) && (~nrow&0x01)
ok merci pour tout.
pour ce qui est de commenter un programme, je suis tout à fait d'accord avec toi 10_GOTO_10![]()
![]()
il aurait pu utiliser l'opérateur modulo '%', ca aurait été plus clair (meme si dans l'absolue, ca l'est)
Il n'y a aucune raison technique. Mais l'usage veut que pour coder des masques binaires, on utilise la notation hexadécimale...Envoyé par seriousme
Partager