Difference entre | et || en C++ - C++ - Programmation
Marsh Posté le 02-06-2006 à 14:33:07
|| est l'opérateur ou *logique*. En gros, <conditionA> || <conditionB> est vrai si condiionA est vraie ou si conditionB est vraie.
| est l'opérateur ou *binaire*. Si a est un int de valeur 3 (sa représentation bnaire est 00000011) et b est un entier de valeur 5 (sa représentation binaire est 00000101), alors c = a | b vaut 7 (sa représentation binaire 00000111 est obtenue en faisant un "ou" bit-à-bit sur les représentations binaires de a et b)
En pratique, il y a de fortes chances que tu n'utilises que ||
edit: GRILLAID !
Marsh Posté le 02-06-2006 à 15:16:28
precision importante, on pourrait tres bien ecrire
<conditionA> | <conditionB>
la difference ici c'est que conditionB est évaluée meme si conditionA est vrai (les 2 expressions-operandes sont evaluées avant d'effectuer l'operation)
Marsh Posté le 02-06-2006 à 15:18:21
ouais enfin si tes conditions renvoie pas 1 mais "un entier ayant une valeur non nulle" tu risque d'avoir des surprises avec le | utilisé dans un if.
l'utilisation du | est vraiment très rare et dans des cas particuliers ou quand t'en a besoin tu sais vraiment pourquoi tu l'utilise
Marsh Posté le 02-06-2006 à 15:26:45
ce que je veux faire c est :
Si (a<11 || b<22)
si a< 11 et/ou b<22
C est donc correct ?
Marsh Posté le 02-06-2006 à 15:31:12
sylvaing a écrit : ce que je veux faire c est : |
Oui oui, c'est ça.
skelter> j'ai effectivement oublié de parler de l'évaluation paresseuse
ceci dit, je ne suis pas sûr qu'il soit judicieux de parler de "if( condA | condB )" à quelqu'un qui est visiblement débutant...
Marsh Posté le 02-06-2006 à 15:32:14
0x90 a écrit : ouais enfin si tes conditions renvoie pas 1 mais "un entier ayant une valeur non nulle" tu risque d'avoir des surprises avec le | utilisé dans un if. |
eu la non, pour tout entier n
n | 0 == n
au niveau de la logique booleenne c'est identique a ||
Marsh Posté le 02-06-2006 à 15:35:09
franceso a écrit : |
oui, en effet, ne jamais utiliser | quand on pourrait utiliser || a la place
Marsh Posté le 02-06-2006 à 16:20:27
skelter a écrit : eu la non, pour tout entier n |
effectivement j'ai dit une petite bétise c'est pour le & que ca pose des problèmes en fait...
Marsh Posté le 02-06-2006 à 14:25:36
Bonjour a tous....
Je suis un peu inquiet...j ai fait un code C++ en utlisant "||" dans le sens et/ou...Est ce correct ? Quelle est la difference entre "|" et "||" ?
Merci a tous
Sylvain