Qu'est-ce que le calculateur NOR bit à bit ?
Cet outil calcule le NON-OU (NOR) bit à bit de deux entiers à l'aide de la formule \(\text{résultat} = \sim(\text{A} \mathbin{|} \text{B})\). Le NOR (« NON-OU ») est une opération logique fondamentale : il applique d'abord un OU sur chaque paire de bits correspondants, puis inverse le résultat. Un bit de sortie vaut 1 uniquement lorsque les deux bits d'entrée valent 0. Le NOR est fonctionnellement complet : toutes les autres portes logiques peuvent être construites à partir de portes NOR seules, ce qui explique son rôle central en électronique numérique.
Comment l'utiliser
Saisissez deux nombres entiers (A et B) et choisissez une largeur de bits (8, 16, 32 ou 64 bits). Le calculateur renvoie le résultat du NOR interprété comme une valeur non signée sur cette largeur, accompagné de la valeur intermédiaire du OU et d'une représentation binaire. Opter pour une largeur de bits plus petite revient simplement à masquer les bits de poids fort, ce qui s'avère pratique lorsqu'on émule des registres à largeur fixe.
La formule expliquée
Le OU de deux bits vaut 1 si l'un ou l'autre des bits vaut 1. Le NOR inverse ce résultat, si bien que chaque bit suit la table de vérité suivante : 0 NOR 0 = 1, 0 NOR 1 = 0, 1 NOR 0 = 0, 1 NOR 1 = 0. Comme l'inversion brute (~) met à 1 tous les bits de poids fort, on masque le résultat avec \(2^{n}-1\) afin de le maintenir dans la largeur de bits non signée sélectionnée.
$$\text{NOR} = \sim\left(\text{A} \mathbin{|} \text{B}\right) \mathbin{\&} \left(2^{\text{Bits}} - 1\right)$$
Exemple concret
Prenons A = 12 (en binaire 1100) et B = 10 (en binaire 1010) sur 8 bits. \(\text{A} \mathbin{|} \text{B} = 1110 = 14\). En inversant sur 8 bits, on obtient \(11110001 = 241\). Ainsi, 12 NOR 10 = 241 sur 8 bits.
$$12 \mathbin{\text{NOR}} 10 = \sim\left(12 \mathbin{|} 10\right) \mathbin{\&} \left(2^{8} - 1\right) = 241$$
Table de vérité NOR et masques de largeur de bits
L'opération NOR binaire combine deux opérandes bit par bit. Pour chaque paire de bits, elle calcule d'abord l'OR, puis inverse le résultat. En d'autres termes, un bit de sortie est 1 seulement quand les deux bits d'entrée sont 0 ; dans tous les autres cas, le bit de sortie est 0. C'est la négation de OR, d'où le nom NOR (NOT-OR).
| A | B | A | B | NOR = ~(A | B) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 |
Parce que l'étape NOT inverse chaque bit, le résultat dépend de la largeur de bits choisie. Après avoir effectué l'OR des opérandes et l'inversion, la valeur est masquée à la largeur \(n\) en utilisant \(2^{n}-1\), de sorte que seuls les \(n\) bits les plus bas restent. Le masque pour chaque largeur supportée est montré ci-dessous.
| Largeur de bits \(n\) | Masque \(2^{n}-1\) (décimal) | Valeur maximale non signée |
|---|---|---|
| 8 | 255 | 255 |
| 16 | 65535 | 65535 |
| 32 | 4294967295 | 4294967295 |
| 64 | 18446744073709551615 | 18446744073709551615 |
Par exemple, avec \(A = 12\) et \(B = 10\) à une largeur de 8 bits : \(12 | 10 = 14\), et \(\sim 14\) masqué à 8 bits donne 241. Le résultat OR intermédiaire \(12 | 10 = \) 14 peut être vérifié indépendamment.
Termes clés
- NOR binaire
- Une opération qui produit un résultat dont chaque bit est 1 seulement quand les bits correspondants des deux opérandes sont 0. Elle est définie comme l'inversion du résultat OR : \(\text{NOR} = \sim(A | B)\).
- OR (binaire)
- Une opération qui définit chaque bit de résultat à 1 si au moins l'un des deux bits d'entrée correspondants est 1, et à 0 seulement quand les deux sont 0.
- NOT / inversion (~)
- Une opération unaire qui bascule chaque bit : chaque 0 devient 1 et chaque 1 devient 0. Dans NOR, elle est appliquée au résultat OR, et son effet est limité par la largeur de bits choisie.
- Largeur de bits
- Le nombre de bits utilisés pour représenter une valeur (8, 16, 32 ou 64 ici). Elle détermine le nombre de bits que le résultat inversé conserve et par conséquent la plage numérique de la sortie.
- Masquage
- Utiliser un ET binaire avec une valeur comme \(2^{n}-1\) pour conserver seulement les \(n\) bits les plus bas et rejeter les bits supérieurs. Ceci confine le résultat NOR à la largeur sélectionnée.
- Entier non signé
- Une représentation de nombre entier sans bit de signe, de sorte que tous les motifs de bits représentent des valeurs non négatives de 0 jusqu'à \(2^{n}-1\). Le résultat NOR est rapporté comme une valeur non signée.
- Porte fonctionnellement complète (universelle)
- Une porte à partir de laquelle toute fonction booléenne peut être construite en utilisant seulement des copies d'elle-même. NOR est fonctionnellement complet : AND, OR et NOT peuvent tous être construits à partir de portes NOR seules, c'est pourquoi elle est appelée une porte universelle.
FAQ
Pourquoi le résultat change-t-il selon la largeur de bits ? L'inversion retourne chaque bit, si bien que les 1 de tête dépendent du nombre de bits utilisés pour représenter le nombre. Une largeur plus grande donne un résultat non signé plus élevé.
Puis-je utiliser des nombres négatifs ? Les entrées sont traitées comme des entiers ; pour obtenir des résultats nets, utilisez des nombres entiers non négatifs compris dans la largeur choisie.
Le NOR est-il identique au NAND ? Non. Le NAND correspond à \(\sim(\text{A} \mathbin{\&} \text{B})\) (NON-ET), tandis que le NOR correspond à \(\sim(\text{A} \mathbin{|} \text{B})\) (NON-OU). Les deux sont des portes universelles, mais produisent des sorties différentes.