|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Architecte réseau Inscription : juillet 2012 Messages : 16 ![]() |
Bonjour,
Que veut dire l'enchainement de | avec = svp en C? Je comprends += ou encore /= etc... mais j'avoue que je suis perdu avec l'association de |=. Par exemple : Code :
Je vous remercie d'avance |
||
|
|
00
|
|
|
#2 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 614 ![]() |
Bonsoir,
Le pipe « | » représente le OU logique bit à bit. « i |= 5 » est équivalent à « i = i | 5 », exactement sur le même modèle que les autres opérateurs. De la même façon, le ET logique s'écrit « i &= 5 » ou « i = i & 5 ». Les opérations ET ou OU sont celles de la logique du premier ordre. Dans les ordinateurs, elles nous intéressent parce qu'on peut les considérer comme les opérations les plus fondamentales : c'est avec des portes logiques ET, OU, NON et OU Exclusif que l'on forme les additionneurs-soustracteurs, par exemple. En programmation, elles sont particulièrement utiles parce que c'est avec elles que l'on va pouvoir travailler au niveau du bit, puisque le micro-processeur ne sait adresser que des mots binaires de taille fixe (généralement un octet). Il s'agit donc de comparer deux à deux chacun des bits de deux valeurs données (le bit0 avec le bit 0, le bit 1 avec le bit 1, et ainsi de suite), puis : — Dans une opération OU, le bit du résultat sera à 1 si le même bit d'au moins un des opérandes est à 1 (l'un OU l'autre, ou les deux a fortiori) ; — Dans une opération ET, le bit du résultat sera à 1 si les mêmes bits des deux opérandes sont à 1 (l'un ET l'autre) ; Un OU est donc l'équivalent d'une UNION, et un ET celui d'une INTERSECTION. Par conséquent, pour forcer à 1 un bit donné dans une variable, on fait un OU avec une valeur appelée « masque » dans laquelle ce bit est à 1. Pour forcer un bit à zéro, on fait un ET avec un autre masque. Tous les bits marqués à 1 dans le masque conserveront leur valeur initiale et les autres seront forcés à zéro. |
|
|
30
|
|
|
#3 | |||||
|
Membre émérite
![]() ![]() |
Bonjour,
Citation:
Code :
![]() Bonne journée !
__________________
Récursivité en C : épidémie ou hérésie ? "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman |
|||||
|
30
|
|
|
#4 | ||||||||
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Citation:
Citation:
Pour les exemples, je n'ecris que les 8 bits les plus faibles (non signes), mais ca fonctionne sur 64 bits aussi hein. Exemple 1 : i est "initialisé" a 3 lors de l'execution Code C :
Exemple 2, i initialise a 8 : Code C :
|
||||||||
|
|
20
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Architecte réseau Inscription : juillet 2012 Messages : 16 ![]() |
Merci a toutes et a tous pour vos excellentes reponses, tout aussi completes les unes que les autres.
|
|
|
10
|
Copyright © 2000-2013 - www.developpez.com