Mode d'emploi
- Saisissez la première valeur dans Première valeur (A), et la seconde dans Deuxième valeur (B) lorsque l'opération l'utilise.
- Choisissez le Système de numération dans lequel les valeurs sont saisies, puis l'Opération.
- Pour un décalage ou une rotation, réglez Décaler ou faire tourner de. Choisissez la Largeur que doit avoir le résultat.
- Lisez le résultat dans Hexadécimal, Décimal (non signé) et Binaire, ainsi que le tableau bit par bit en dessous.
Les opérations logiques
0xCA ET 0x0F = 11001010 ET 00001111 = 00001010 = 0x0A
- ET donne 1 seulement lorsque les deux bits valent 1. Il sert à garder certains bits et à effacer les autres.
- OU donne 1 lorsque l'un des deux bits vaut 1. Il sert à mettre des bits.
- XOR donne 1 lorsqu'un seul des deux bits vaut 1. Appliquer deux fois le même XOR rend la valeur d'origine.
- NON-ET et NON-OU sont le ET et le OU suivis d'un NON. NON inverse chaque bit de la largeur choisie.
Décalages et rotations
Un décalage à gauche fait monter chaque bit d'une position et remplit le bas de zéros ; un bit qui sort par le haut est perdu. Un décalage logique à droite fait descendre chaque bit et remplit le haut de zéros. Un décalage arithmétique à droite remplit le haut de copies du bit de signe, si bien qu'une valeur négative reste négative. Une rotation fait revenir par l'autre extrémité le bit qui sort d'un côté.
0xCA décalé à gauche de 1 = 10010100 (0x94) ; à droite logique = 01100101 (0x65) ; à droite arithmétique = 11100101 (0xE5) ; rotation à gauche = 10010101 (0x95)
La largeur compte
NON de zéro vaut 0xFF sur 8 bits, 0xFFFF sur 16 bits et 0xFFFFFFFF sur 32 bits, car le résultat a autant de bits que la largeur. Une valeur qui demande plus de bits que la largeur n'est pas stockée en entier : l'outil utilise ses bits de poids faible et affiche la ligne Vérification en rouge.
Ce que l'outil ne couvre pas
- Les langages diffèrent. Les opérateurs bit à bit de JavaScript convertissent leurs opérandes en entiers de 32 bits, et ne peuvent donc pas afficher de résultat sur 64 bits. Cet outil affiche les bits de la largeur choisie, avec BigInt pour que les valeurs de 64 bits soient exactes.
- Les champs de bits d'une structure, l'ordre des octets et les formats de fichiers : pour ceux-ci, voir la visionneuse hexadécimale.
Exemple détaillé : 0xCA ET 0x0F sur 8 bits
Saisissez CA comme première valeur et 0F comme deuxième, avec le Système de numération réglé sur hexadécimal et la Largeur sur 8 bits. Le résultat est 00001010, soit 0x0A en hexadécimal et 10 en décimal. Seuls restent les bits présents à la fois dans A et dans B : deux bits, situés dans les quatre positions basses que garde 0F.
| Résultat | Valeur |
|---|---|
| Hexadécimal | 0x0A |
| Binaire | 0b0000 1010 |
| Décimal (non signé) | 10 |
Questions fréquentes
Quelle est la différence entre un décalage logique et un décalage arithmétique à droite ?
Les deux font descendre les bits d'une position. Le décalage logique remplit le haut de zéros, et traite donc la valeur comme non signée. Le décalage arithmétique copie le bit de signe, si bien qu'une valeur négative reste négative : 0xCA vaut −54, et décalé de 1 à droite il vaut −27 (0xE5).
Pourquoi NON donne-t-il un résultat différent selon la largeur ?
NON inverse chaque bit de la largeur. Zéro vaut 00000000 sur 8 bits : NON donne 11111111 (0xFF). Sur 32 bits, zéro a 32 bits, et NON donne 0xFFFFFFFF. Un même nombre n'occupe pas le même nombre de bits selon la largeur.
En quoi une rotation diffère-t-elle d'un décalage ?
Un décalage perd les bits qui sortent d'un côté. Une rotation les remet à l'autre extrémité : aucun bit n'est perdu. Une rotation de la largeur donne de nouveau la même valeur.
Pourquoi une valeur est-elle signalée quand elle ne tient pas dans la largeur ?
Une valeur qui demande plus de bits que la largeur ne peut pas être stockée en entier. L'outil utilise les bits de poids faible : 300 sur 8 bits devient 44, et la ligne Vérification indique ce qui s'est passé, pour que le résultat ne soit pas pris pour la valeur saisie.
Puis-je saisir des nombres binaires avec des espaces ?
Oui. Les espaces et les tirets bas sont ignorés : 1100 1010 et 11001010 sont la même valeur. L'hexadécimal peut avoir le préfixe 0x, et le binaire le préfixe 0b.
Sources
Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.