Calcul Addition & Soustraction Binaire

Calcul Addition & Soustraction Binaire

Effectuez des additions et soustractions binaires avec calcul pas à pas des retenues, complément à deux signé, simulation de portes logiques et conversion hexadécimale en temps réel.

Charger un exemple
Entrée des opérandes & Contrôle logique
Largeur du registre (Bits)8bits
Architecture ALU:
Politique de débordement:
Boutisme (Endianness):
Binaire normalisé:1111 1111
Équiv. décimal: 255Équiv. hexadécimal: 0xFF
Bascule interactive des bits A:Cliquez sur un bit pour basculer son état (0 ↔ 1)
+Addition binaire (A + B)
Binaire normalisé:0000 0001
Équiv. décimal: 1Équiv. hexadécimal: 0x01
Bascule interactive des bits B:Cliquez sur un bit pour basculer son état (0 ↔ 1)
Résultat arithmétique calculé8bits
Flux binaire (groupes de 4 bits)
0000 0000
Hexadécimal & Décimal (0x)
0x00
Décimal non signé
0
Décimal signé (Complément à 2)
0
Latence ALU silicium & Modèle matérielRipple-Carry Adder (RCA - Linear O(N))
Délai de propagation: 192 ps
Complexité (Transistors): ~224 portes
Drapeaux d'état matériel de l'ALU CPUEFLAGS / CCR
Drapeau Zero (Z)HAUT (1)

Activé lorsque le résultat arithmétique est exactement égal à zéro

Drapeau de signe Negative (N)BAS (0)

Reflet direct du bit de signe (MSB) pour la largeur de mot active

Drapeau de retenue Carry (C)HAUT (1)

Retenue arithmétique non signée générée au-delà du bit de poids fort (MSB)

Drapeau de débordement Overflow (V)BAS (0)

Débordement en complément à deux : deux signes identiques ont produit un résultat de signe opposé

Simulation silicium de l'additionneur à retenue propagée
Retenue entrante (C_in)Somme sortante (S)
Étage 7MSB (Bit de poids fort)PGA=1B=0C=1S=0Étage 6Bit 6PGA=1B=0C=1S=0Étage 5Bit 5PGA=1B=0C=1S=0Étage 4Bit 4PGA=1B=0C=1S=0Étage 3Bit 3PGA=1B=0C=1S=0Étage 2Bit 2PGA=1B=0C=1S=0Étage 1Bit 1PGA=1B=0C=1S=0Étage 0LSB (Bit de poids faible)PGA=1B=1C=0S=0C_out=1
Largeur de mot active8bits (architecture)
Drapeaux ALU levés2 actifs sur 4 au total
Latence de propagation ALU192 ps (RCA)
Référence technique et guide d'architecture

Calcul Binaire Addition & Soustraction — Guide de référence

Calculez l'addition et la soustraction binaires pas à pas avec propagation des retenues, complément à deux, portes logiques et conversion hexadécimale en temps réel.

Calcul Binaire Addition & Soustraction — Guide de référence — Architecture en mémoire côté client et flux de données
Calcul Binaire Addition & Soustraction — Guide de référence — Architecture en mémoire côté client et flux de données

Paramètres clés et contrôles

Opérande A (Premier terme / Diminuende)Chaîne binaire de bits [0-1]

Saisie binaire principale sous forme de séquence de bits. Prend en charge les longueurs arbitraires, le préfixe 0b et les séparateurs par quartet (nibble). En mode addition, fait office de premier terme ; en mode soustraction, représente le diminuende duquel l'opérande B est soustrait.

Par défaut : 10110100
Opérande B (Second terme / Diminuteur)Chaîne binaire de bits [0-1]

Seconde entrée binaire sous forme de séquence de bits. En mode addition, correspond au second terme ajouté à l'opérande A ; en mode soustraction, représente le diminuteur inversé et incrémenté via l'arithmétique du complément à deux.

Par défaut : 01001101
Largeur du mot registre (Taille en bits)Capacité du registre matériel (4, 8, 16, 32, 64 bits, Illimité)

Limite physique du registre matériel déterminant la troncature à taille fixe, l'emplacement du bit de signe (MSB) ainsi que la plage non signée [0, 2^N - 1] par rapport à la plage signée [-2^(N-1), 2^(N-1) - 1]. Un registre 8 bits s'étend de 0 à 255 en non signé, ou de -128 à +127 en signé.

Par défaut : 8-bit
Mode d'opération arithmétiqueSélecteur d'opération ALU (Addition / Soustraction)

Configure l'opération de l'unité arithmétique et logique (ALU) : addition binaire standard signée ou non signée (A + B + C_in) ou soustraction matérielle en complément à deux (A + (~B) + 1).

Par défaut : add
Retenue initiale entrante (C_in)État de retenue sur 1 bit (0 ou 1)

Bit de retenue initiale injecté à l'indice de bit 0 (bit de poids faible, LSB). Vaut 0 par défaut pour une addition autonome ; passe à 1 lors du chaînage d'additions multi-mots (ADC) ou pour finaliser la négation en complément à deux.

Par défaut : 0
Standard de représentation numériqueEncodage du signe des entiers (Non signé / Signé en complément à deux)

Détermine si le bit de poids fort (MSB) représente une puissance de deux positive standard (2^(N-1)) ou un poids de signe négatif (-2^(N-1)) en notation signée en complément à deux.

Par défaut : unsigned

Conseils de pro et bonnes pratiques

Détection instantanée du débordement signé via XOR des deux dernières retenues

En arithmétique en complément à deux, un débordement matériel (overflow CPU) se produit si et seulement si la retenue entrante dans le bit de poids fort diffère de la retenue sortante de ce même bit : V = C_msb ^ C_msb_minus_1. Ce test à une seule porte logique diagnostique instantanément les cas où l'addition de deux nombres positifs produit un résultat négatif erroné ou lorsque l'addition de deux nombres négatifs engendre un résultat positif.

La soustraction en complément à deux ignore la retenue sortante finale

Lors d'une soustraction binaire par complément à deux A - B = A + (~B + 1), si le résultat est positif ou nul, une retenue sortante finale valant 1 est générée (signalant qu'aucun emprunt non signé n'a été nécessaire). Les microprocesseurs modernes (comme x86 et ARM) inversent ou interprètent cette retenue sortante comme un drapeau d'emprunt inversé (B = ~C). Ne confondez pas cette retenue finale avec un débordement arithmétique.

Délais de propagation : additionneur à retenue anticipée vs retenue propagée

Dans les additionneurs à propagation de retenue élémentaires (RCA), les bits de retenue transitent en cascade à travers N additionneurs complets, créant un temps de propagation en O(N) qui bride les ALU haute fréquence. Les processeurs industriels exploitent des additionneurs à retenue anticipée (Carry-Lookahead Adders, CLA) qui calculent en parallèle les signaux de génération (G_i = A_i & B_i) et de propagation (P_i = A_i ^ B_i) par blocs de 4 bits, abaissant le délai d'évaluation à O(log N).

Attention à la dissymétrie de la dynamique négative en complément à deux

Dans un système signé en complément à deux sur N bits, l'intervalle négatif s'étend jusqu'à -2^(N-1), tandis que l'intervalle positif s'arrête à +2^(N-1) - 1. Par exemple, dans un registre 8 bits, la plage va de -128 à +127. Tenter d'inverser -128 (en calculant 0 - (-128)) redonne -128 car +128 ne peut être encodé sur 8 bits, déclenchant une exception matérielle de débordement.

Pièges courants et dépannage

⚠️L'addition de deux nombres binaires signés positifs produit une valeur négative inattendue

Ce comportement survient lorsque la somme excède la valeur positive maximale représentable dans la largeur de registre choisie (par ex. +120 + +15 = +135, ce qui dépasse le plafond signé de +127 sur 8 bits). Le 8e bit bascule de 0 à 1, conduisant le processeur à l'interpréter comme un nombre négatif (-121) en complément à deux. Il s'agit d'un dépassement d'entier signé classique (overflow). Corrigez ce problème en surveillant l'indicateur de débordement (Overflow Flag, V=1) ou en étendant la taille du registre de 8 bits à 16 bits.

⚠️Les chaînes binaires en entrée contiennent des caractères non binaires, des espaces ou des préfixes

Les notations de base comme '0b1011', les fragments hexadécimaux ('0x1A'), les virgules ou les espaces irréguliers perturbent l'analyse bit à bit. Le système de nettoyage supprime automatiquement les préfixes '0b'/'0B' et normalise les espaces. Si des caractères distincts de 0 et 1 sont saisis, le moteur surligne les positions non valides à l'aide d'un badge rouge d'avertissement et suspend l'évaluation jusqu'à l'obtention de chiffres binaires valides.

⚠️La longueur en bits du résultat dépasse la taille du registre sélectionné (bouclage non signé)

Lorsque la somme de deux nombres non signés de N bits atteint ou dépasse 2^N (par ex. 255 + 1 = 256 sur un octet de 8 bits), un (N+1)ième bit de retenue sortante est émis. Dans un registre matériel à largeur fixe, ce bit excédentaire ne peut être stocké dans le mot et active le drapeau de retenue CPU (Carry Flag, C=1), tandis que la valeur du registre boucle à 0. Pour conserver l'intégralité de la somme sur 9 bits, basculez le sélecteur de largeur de mot sur 16 bits ou « Illimité ».

⚠️L'addition manuelle posée avec retenues ne concorde pas avec le calcul décimal

Vérifiez que les bits de retenue sont correctement reportés vers la colonne adjacente à gauche (indice i+1). En addition binaire, 1 + 1 = 10 (somme 0, retenue 1), et 1 + 1 + 1 (en incluant une retenue entrante) = 11 (somme 1, retenue 1). Consultez l'onglet de décomposition pas à pas posée (« Step-by-Step Pencil-and-Paper Carry Grid »), qui met en valeur la ligne des retenues actives (C_in) au-dessus de chaque colonne de bits pour identifier précisément l'écart arithmétique.

Foire aux questions (FAQ)

Comment additionner deux nombres binaires pas à pas ?▼

Pour additionner deux nombres binaires pas à pas, alignez les deux nombres sur la droite et effectuez la somme colonne par colonne, de droite à gauche, selon quatre règles fondamentales : 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, et 1 + 1 = 0 avec une retenue de 1 reportée sur la colonne suivante. Si une colonne reçoit une retenue entrante valant 1, alors 1 + 1 + 1 donne 1 avec une retenue de 1. Inscrivez le bit de somme sous la colonne et reportez le bit de retenue au-dessus de la colonne suivante à gauche, en répétant l'opération jusqu'à ce que tous les bits et la retenue finale soient traités.

Comment fonctionne la soustraction en complément à deux dans l'addition binaire ?▼

La soustraction par complément à deux convertit une soustraction en une addition grâce à l'identité algébrique A - B = A + (~B + 1). Premièrement, inversez tous les bits du diminuteur B (transformez les 0 en 1 et les 1 en 0 pour obtenir le complément à un). Deuxièmement, ajoutez 1 à cette valeur inversée pour former le complément à deux. Troisièmement, additionnez directement ce résultat à A au moyen d'une addition binaire classique et ignorez le bit de retenue sortante finale. Par exemple, 7 (0111) - 3 (0011) devient 0111 + 1101 = 10100 ; ignorer le 5e bit donne 0100 (soit 4 en décimal).

Quelle est la différence entre le drapeau de retenue (Carry Flag, C) et le drapeau de débordement (Overflow Flag, V) ?▼

Le drapeau de retenue (Carry Flag, C) détecte les dépassements arithmétiques non signés lorsqu'un calcul franchit la capacité maximale non signée (2^N - 1), tandis que le drapeau de débordement (Overflow Flag, V) identifie les erreurs arithmétiques signées en complément à deux. Par exemple, dans un registre 8 bits (plage de 0 à 255 en non signé, et de -128 à +127 en signé), l'opération 255 + 1 génère une retenue (C=1, dépassement non signé) mais aucun débordement signé. À l'inverse, +64 + +65 = +129 active l'indicateur de débordement (V=1) car le résultat excède +127 et bascule à -127, alors que le drapeau de retenue reste à 0.

Pourquoi 127 + 1 donne-t-il -128 en arithmétique binaire signée sur 8 bits ?▼

En complément à deux signé sur 8 bits, le bit de poids fort (bit 7) porte un poids négatif de -128 (-2^7). La valeur décimale +127 est représentée en binaire par 01111111. L'ajout de 1 donne 10000000, ce qui positionne le bit de signe à 1 tandis que tous les bits de magnitude inférieure deviennent 0. Le calcul de la valeur signée donne (-128 * 1) + 0 = -128. En raison de la plage dissymétrique de -128 à +127 propre aux entiers 8 bits signés, l'incrémentation de la valeur positive maximale boucle directement vers la valeur négative la plus basse.

Quelle est la différence entre un demi-additionneur (Half Adder) et un additionneur complet (Full Adder) ?▼

Un demi-additionneur (Half Adder) calcule la somme de deux entrées d'un bit (A et B) via une sortie de somme (S = A XOR B) et une sortie de retenue (C = A AND B), mais ne peut pas intégrer de retenue provenant d'un rang inférieur. Un additionneur complet (Full Adder) traite trois entrées d'un bit : A, B et une retenue entrante (C_in). Il génère une somme (S = A XOR B XOR C_in) et une retenue sortante (C_out = (A AND B) OR (C_in AND (A XOR B))), permettant ainsi de chaîner plusieurs additionneurs pour calculer des nombres binaires multi-bits.

Comment calculer le complément à deux d'un nombre binaire négatif ?▼

Pour obtenir le complément à deux d'un nombre binaire, inversez chaque bit de 0 à 1 et de 1 à 0 (formant le complément à un), puis ajoutez 1 au bit de poids faible. Une astuce mnémotechnique efficace consiste à parcourir le nombre binaire de droite à gauche : conservez tous les 0 consécutifs finaux ainsi que le premier 1 inchangés, puis inversez tous les bits situés à gauche de ce premier 1. Par exemple, pour inverser +6 (00000110), le balayage de droite à gauche conserve '10' intact et inverse les bits supérieurs en '111110', aboutissant à 11111010 (-6 sous forme signée 8 bits).

Outils et utilitaires connexes

Tous les outils →
Testeur & Validateur Robots.txtDéveloppement

Testez et validez la syntaxe robots.txt selon la norme RFC 9309. Vérifiez les autorisations de crawl par User-Agent, déboguez les chemins Disallow et inspectez les sitemaps.

Ouvrir l'outil→
Convertisseur Markdown en HTML & AperçuDéveloppement

Convertissez du Markdown en code HTML propre et optimisé pour la production en temps réel. Tableaux GFM, coloration syntaxique, assainissement XSS et export complet.

Ouvrir l'outil→
Parseur Cron & Testeur CrontabDéveloppement

Analysez vos expressions cron en horaires lisibles. Inspectez les prochaines exécutions multi-fuseaux horaires, validez la syntaxe crontab et projetez les dates d'exécution.

Ouvrir l'outil→
Générateur GraphQL vers TypeScriptDéveloppement

Convertissez vos schémas SDL et requêtes GraphQL en types, interfaces, énumérations et résolveurs TypeScript. Génération instantanée dans le navigateur, sans configuration ni transfert serveur.

Ouvrir l'outil→
Convertisseur HTML en Markdown (GFM)Développement

Convertissez du code HTML en Markdown GitHub Flavored (GFM) avec tableaux, blocs de code et nettoyage d'extraits web. Supprimez les styles inline et exportez des fichiers .md propres.

Ouvrir l'outil→
Comparateur de Texte & Diff CheckerDéveloppement

Comparez vos textes, codes et fichiers avec notre comparateur de diff instantané. Visualisez les écarts côte à côte ou en ligne au caractère près, ignorez les espaces et exportez vos patchs unifiés.

Ouvrir l'outil→