CCalculate.Studio

💾 Calculateur d'opérations bit à bit

Les opérations bit à bit agissent directement sur les chiffres binaires — les bits — de la représentation d'un nombre, au lieu de le traiter comme une valeur décimale globale. Ce calculateur réalise les six opérations standard — ET, OU, OU exclusif, NON, décalage à gauche et décalage à droite — sur des entiers 32 bits positifs ou nuls, et affiche la représentation binaire des données comme du résultat.

Dernière vérification: 2026-07-07
Add as preferred on Google

Comprendre la table de vérité bit à bit

Chaque opération logique bit à bit obéit à une table de vérité fixe, appliquée indépendamment à chaque paire de positions de bits correspondantes.

Bit ABit BETOUOU exclusif
00000
01011
10011
11110
  • Les données sont limitées à la plage d'un entier 32 bits signé (0 à 2 147 483 647) parce que les opérateurs bit à bit de JavaScript convertissent en interne leurs opérandes en représentation 32 bits avant tout calcul, conformément à la spécification ECMAScript.
  • NON (~A) produit toujours un résultat qui, lu comme entier 32 bits signé, vaut −(A + 1) ; ce calculateur en affiche l'équivalent non signé — ~12 s'affiche ainsi 4 294 967 283 plutôt que −13 — afin que la représentation binaire présentée reste sans ambiguïté.
  • Les amplitudes de décalage (B) supérieures à 31 sont plafonnées à 31, car décaler une valeur 32 bits de 32 positions ou plus fait boucler l'opération en JavaScript, qui ne retient que les 5 bits de poids faible de l'amplitude, au lieu de produire 0 comme on pourrait s'y attendre.

Que sont les opérations bit à bit ?

Une opération bit à bit traite un nombre au niveau de ses chiffres binaires, en comparant ou en déplaçant les 0 et les 1 de son écriture en base 2, plutôt qu'en pratiquant l'arithmétique décimale ordinaire. Tout entier s'écrit en binaire comme une suite de bits représentant chacun une puissance de 2 : 12 s'écrit ainsi 1100, c'est-à-dire 1×8 + 1×4 + 0×2 + 0×1.

Les opérations logiques — ET, OU, OU exclusif et NON — comparent les positions de bits correspondantes de deux nombres, ou inversent les bits d'un seul, selon les règles de la logique booléenne appliquées indépendamment à chaque position. Les opérations de décalage, à gauche et à droite, déplacent quant à elles tous les bits d'un nombre d'un certain nombre de positions, ce qui revient mathématiquement à multiplier ou diviser par une puissance de 2.

Ces opérations sont au cœur de l'informatique et de la programmation de bas niveau : on y recourt pour activer, effacer ou tester des indicateurs individuels dans un jeu d'options (les drapeaux binaires), pour multiplier ou diviser rapidement par des puissances de 2, dans les algorithmes cryptographiques, en traitement graphique et colorimétrique (combinaison des canaux rouge, vert et bleu) ainsi que pour encoder des données de façon compacte.

Comment utiliser ce calculateur bit à bit

  1. Saisissez le premier nombre (A) sous forme d'entier positif ou nul, de 0 à 2 147 483 647, plage d'un entier 32 bits signé.
  2. Saisissez le second nombre (B). Pour ET, OU et OU exclusif, il s'agit du second opérande comparé bit à bit avec A. Pour les décalages, il s'agit du nombre de positions à décaler : de 0 à 31 utilement, les valeurs supérieures étant plafonnées à 31. Pour NON, B est ignoré, l'opération ne portant que sur A.
  3. Choisissez l'opération : ET, OU, OU exclusif, NON, décalage à gauche ou décalage à droite.
  4. Lisez le résultat décimal, accompagné de la représentation binaire de A, de B (ou de l'amplitude du décalage) et du résultat.

Le fonctionnement de chaque opération bit à bit

ET : le bit vaut 1 seulement si les deux bits correspondants valent 1
OU : le bit vaut 1 si au moins un bit correspondant vaut 1
OU exclusif : le bit vaut 1 si exactement un bit correspondant vaut 1
Décalage à gauche : A << B = A × 2^B ; Décalage à droite : A >> B = ⌊A ÷ 2^B⌋
Exemple : 12 AND 10 = 8; 12 OR 10 = 14; 12 XOR 10 = 6; 12 << 2 = 48; 12 >> 2 = 3

ET compare chaque position de bit et renvoie 1 uniquement là où les deux bits valent 1, sinon 0. Exemple traité : 12 (1100) ET 10 (1010) = 8 (1000), puisque seule la troisième position, de valeur 8, porte un 1 dans les deux nombres.

OU compare chaque position et renvoie 1 dès qu'au moins l'un des deux bits vaut 1. Exemple traité : 12 (1100) OU 10 (1010) = 14 (1110). Le OU exclusif renvoie pour sa part 1 là où exactement un des deux bits vaut 1, mais pas les deux. Exemple traité : 12 (1100) XOR 10 (1010) = 6 (0110).

NON inverse chaque bit d'un nombre unique : 0 devient 1, et 1 devient 0. Comme ce calculateur travaille sur 32 bits, NON 12 retourne les 32 bits et produit 4 294 967 283 en lecture non signée — soit la représentation en complément à deux de −13 si l'on interprète le résultat comme entier signé.

Le décalage à gauche (A << B) déplace tous les bits de A de B positions vers la gauche et comble les positions basses libérées par des 0 : cela revient à multiplier A par 2^B. Exemple traité : 12 << 2 = 48, soit 12 × 2² = 12 × 4 = 48. Le décalage à droite (A >> B) déplace tous les bits de B positions vers la droite en écartant les bits de poids faible : cela revient à la division entière de A par 2^B, arrondie vers le bas. Exemple traité : 12 >> 2 = 3, soit ⌊12 ÷ 4⌋ = 3.

Erreurs fréquentes

  • Confondre le ET et le OU bit à bit avec leurs homologues logiques : les premiers traitent chaque bit indépendamment, tandis que les seconds évaluent la valeur entière comme une seule condition vraie ou fausse ; les résultats diffèrent, hormis dans le cas particulier des valeurs 0 et 1.
  • Attendre d'un décalage à gauche de grande amplitude qu'il produise toujours un nombre proportionnellement plus grand : au-delà d'un certain point, les bits significatifs franchissent la limite des 32 bits et sont écartés — c'est le débordement.
  • Mal interpréter le résultat de NON : comme l'opération retourne les 32 bits, le résultat décimal non signé de ~A paraît bien plus grand que A, alors qu'en lecture signée par complément à deux il représente en réalité un petit nombre négatif, −(A+1).
  • Assimiler systématiquement le décalage à droite à une division : sur un entier positif ou nul, il correspond exactement à la division entière par une puissance de 2 arrondie vers le bas, mais le comportement diffère sur les négatifs selon qu'il s'agit d'un décalage arithmétique ou logique.

Questions fréquentes

Quelle différence entre le ET bit à bit et le ET logique ?

Le ET bit à bit (&) compare deux nombres bit par bit et renvoie un nombre dont chaque bit vaut 1 uniquement si les deux bits correspondants valent 1 : 12 & 10 = 8, par exemple. Le ET logique (&&) traite chaque valeur entière comme une seule condition vraie ou fausse et renvoie l'un des opérandes ou un booléen, en évaluant la véracité plutôt qu'en combinant des bits. Les deux opérateurs répondent à des besoins distincts et donnent en général des résultats très différents.

Comment fonctionne le OU exclusif ?

Le OU exclusif compare deux nombres bit par bit et renvoie 1 à chaque position où exactement un des deux bits vaut 1 — ni les deux, ni aucun. Pour 12 (1100) XOR 10 (1010), la comparaison position par position donne 0110, soit 6 en décimal. On l'emploie couramment pour basculer des bits, repérer les différences entre deux valeurs et calculer sommes de contrôle et bits de parité.

Que fait un décalage à gauche ?

Un décalage à gauche (A << B) déplace tous les bits de l'écriture binaire de A de B positions vers la gauche et comble par des 0 les positions de poids faible libérées. L'opération équivaut mathématiquement à multiplier A par 2 élevé à la puissance B. Ainsi, 12 << 2 = 48, exactement comme 12 × 2² = 12 × 4 = 48.

Que fait le NON bit à bit ?

Le NON bit à bit (~A) inverse chaque bit de A : tout 0 devient 1 et tout 1 devient 0. Appliqué à la représentation 32 bits de 12 (00000000000000000000000000001100), il produit une valeur dont tous les bits sont retournés, qui s'affiche 4 294 967 283 en entier 32 bits non signé et représente −13 en complément à deux, conformément à l'identité ~A = −(A+1).

En quoi le décalage à droite diffère-t-il d'une division ?

Sur les entiers positifs ou nuls, un décalage à droite (A >> B) donne exactement le même résultat que la division entière par 2^B arrondie vers le bas : A >> B = ⌊A ÷ 2^B⌋. Ainsi, 12 >> 2 = 3, comme ⌊12 ÷ 4⌋ = 3. Les deux opérations divergent en revanche sur les nombres négatifs, où le type de décalage — arithmétique ou logique — détermine le traitement du bit de signe, question qui relève de la programmation de bas niveau.

Pourquoi les opérations sont-elles limitées ici à 32 bits ?

Les opérateurs bit à bit intégrés à JavaScript (&, |, ^, ~, <<, >>) convertissent leurs opérandes en entiers 32 bits avant d'opérer, conformément à la spécification du langage ECMAScript. Ce calculateur reproduit ce comportement standard : les données sont donc bornées à la plage représentable sur 32 bits, soit 0 à 2 147 483 647 pour les valeurs positives ou nulles acceptées ici.

Références

  1. Warren HS Jr. Hacker's Delight. 2nd ed. Addison-Wesley, 2012. (Standard reference for bitwise algorithms and two's-complement arithmetic.)
  2. ECMA International. ECMA-262: ECMAScript Language Specification, §6.1.6.1 (Bitwise operators, ToInt32/ToUint32). ecma-international.org.
  3. Patterson DA, Hennessy JL. Computer Organization and Design: The Hardware/Software Interface. 5th ed. Morgan Kaufmann, 2013. (Binary representation and bitwise logic.)

Théorie des nombres · Tous les calculateurs

Calculateurs associés