qu'est ce que cette instruction signifie:
???Code:if ((nrow >= 6) && (~nrow&0x01) && (ncol >= 6) && (~ncol&0x01))
avec nrow et ncol deux entiers
Version imprimable
qu'est ce que cette instruction signifie:
???Code: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.Citation:
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 programmesCitation:
Envoyé par gronaze
signifie que nrow est pairCode:(~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 ncolCode: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 :lol: :lol:
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...Citation:
Envoyé par seriousme
Merci de la précision.