Temps/Nombres
Opérations bit à bit
AND/OR/XOR/NAND/NOR/XNOR/NOT et décalages sur des entiers d'une largeur donnée (8/16/32/64 bits) dans n'importe quel système numérique.
(nombre de bits à décaler, nombre décimal)
Bitwise operations work directly on a number's individual bits rather than its value as a whole — the basis for permission flags, network protocols, and low-level optimization.
How to use it
- Enter one or two numbers in any base (binary, hex, decimal) and pick an operation (AND, OR, XOR, NAND, NOR, XNOR, NOT, or a shift).
- Pick a bit width (8/16/32/64 bits) — it affects how NOT and shifts behave at the number's boundaries.
- The result is shown instantly in several number bases for easy comparison.
Common uses
- Working with permission or setting flags packed into a single number (file system access rights, for example).
- Debugging a network protocol or binary format where fields are packed at the individual-bit level.
- A teaching example for understanding binary number representation and operations on it.
Things to keep in mind
The result of NOT and shifts depends on the chosen bit width — the same number gives a different result at 8-bit versus 32-bit width because of the different number of bits involved.
XOR is often used to toggle a flag — applying XOR twice with the same value returns the original.
Article sur cet outil: Opérations bit à bit : comment fonctionnent AND, OR et XOR au niveau des bits
Questions fréquentes
Quelle est la différence entre AND, OR, XOR, NAND, NOR, XNOR et NOT ?
AND donne 1 seulement quand les deux bits sont 1, OR donne 1 quand au moins un est 1, et XOR donne 1 quand les bits diffèrent. NAND/NOR/XNOR sont leurs négations, et NOT inverse chaque bit d'un seul opérande.
Comment la largeur de bits et le signe d'un nombre sont-ils gérés ?
Choisissez une largeur de 8/16/32/64 bits — les opérations et décalages se produisent dans cette plage. Les nombres négatifs sont représentés en complément à deux, donc le résultat d'un NOT ou d'un décalage peut sembler inattendu si vous êtes habitué à la notation décimale.
Quelle est la différence entre un décalage à gauche et à droite ?
Un décalage à gauche (<<) ajoute des zéros à droite, multipliant effectivement par 2 élevé à la puissance du décalage. Un décalage à droite peut être logique (ajoute des zéros à gauche) ou arithmétique (préserve le bit de signe) — le type dépend du mode sélectionné.
Pourquoi l'expression « if (a & b == c) » ne fonctionne-t-elle souvent pas comme prévu ?
Dans la plupart des langages, l'opérateur de comparaison == a une priorité plus élevée que l'opérateur bit à bit &, donc l'expression est évaluée comme « a & (b == c) », et non comme l'auteur s'y attend généralement. Pour éviter ce piège, entourez toujours les opérations bit à bit de parenthèses explicites.
Pourquoi utiliser des indicateurs bit à bit plutôt que des variables booléennes séparées ?
Un ensemble d'indicateurs regroupés dans un seul nombre se stocke et se transmet plus compactement (par exemple dans des protocoles réseau ou des formats de fichiers), et vérifier ou modifier un indicateur donné via AND/OR/XOR ne prend qu'une seule opération rapide.