Calculateur NAND bit à bit
12 NAND 10 sur 8 bits donne 247 (11110111 en binaire, f7 en hexadécimal), après un AND intermédiaire de 8. Choisissez une largeur de 1 à 53 bits et voyez chaque étape en décimal, binaire et hexadécimal, comme sur un bus de largeur fixe. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- A
- 12
- B
- 10
- Largeur
- 8
- Résultat
- 247
- A masqué
- 12
- B masqué
- 10
- Résultat ET
- 8
Le NAND bit à bit, l'AND inversé de deux entiers, est la porte universelle de logique numérique qui produit zéro uniquement lorsque les deux bits d'entrée valent un. Les étudiants qui vérifient des tables de vérité, les ingénieurs embarqués qui contrôlent une logique masque-et-inversion sur un bus, et les analystes en rétro-ingénierie qui reconstruisent des opérations bit à bit dans un micrologiciel ont besoin d'un moyen déterministe de voir ce que valent douze NAND dix sur huit bits en décimal, binaire et hexadécimal sans ouvrir un REPL qui tronque silencieusement à trente-deux bits. Ce calculateur NAND bit à bit accepte deux entiers sûrs et une largeur de un à cinquante-trois bits, masque chaque opérande sur les bits bas de cette largeur, applique le NAND mathématique comme complément de l'AND sous ce masque, et renvoie le résultat non signé avec des rendus binaires complétés de zéros et hexadécimaux, plus l'AND intermédiaire pour que vous puissiez auditer chaque étape.
Ce que signifie le NAND bit à bit et pourquoi la largeur compte
Le NAND de deux bits n'est faux que lorsque les deux bits sont vrais : zéro NAND zéro vaut un, zéro NAND un vaut un, un NAND zéro vaut un, et un NAND un vaut zéro. Cette table de vérité est exactement l'AND inversé, si bien qu'un NAND multi-bits est le complément bit à bit de l'AND des deux mots.
En logique numérique une seule porte NAND est universelle : toute fonction booléenne peut être construite avec du NAND seul, d'où le statut de primitive dans les manuels et les bibliothèques silicium. Dans les langages de programmation il n'existe rarement d'opérateur NAND dédié ; on écrit la négation de a et b, mais les opérateurs bit à bit du langage utilisent souvent des largeurs machine fixes et une arithmétique à extension de signe qui s'écartent d'un modèle propre de bus non signé.
Ce calculateur prend donc une largeur w explicite de un à cinquante-trois, forme le masque de w uns, masque chaque opérande sur ces bits bas, calcule l'AND sous le masque, puis inverse et remasque pour que le résultat soit toujours une valeur non signée de w bits. Ce contrat à largeur fixe correspond à la façon dont les outils HDL et schématiques pensent un bus : seules les voies actives existent.
Les champs binaires sont complétés de zéros jusqu'à w pour aligner les colonnes sur des tables de vérité dessinées à la main, et les champs hex montrent la même magnitude non signée pour une comparaison rapide de dumps de registres. Les négatifs sont acceptés comme entiers sûrs ; seuls leurs w bits bas participent, ce qui équivaut à une troncature en complément à deux dans un champ non signé de largeur w plutôt qu'à inventer des uns infinis hors du bus.
Où un calculateur NAND bit à bit apporte une vraie valeur
Les laboratoires de conception numérique et FPGA demandent encore aux étudiants de construire des bus NAND multi-bits et de prouver que des cascades de portes NAND réalisent AND, OR et NOT ; un calculateur en direct qui affiche décimal, binaire et hex à une largeur choisie leur permet de vérifier les devoirs sans dessiner chaque colonne à la main.
Le micrologiciel embarqué implémente souvent des contrôles de masque inversé —activer un périphérique seulement lorsqu'un bit est à zéro— en codant la négation de statut et masque, ce qui est exactement un NAND sur le champ concerné ; vérifier ces expressions sur huit ou seize bits attrape les erreurs de masque d'un bit avant le silicium.
Les cours d'architecture des ordinateurs introduisent le trait de Sheffer et la complétude fonctionnelle ; montrer que a NAND b égale la négation de a et b à la même largeur ancre la théorie dans des nombres que l'étudiant peut recalculer. Les notes de sécurité qui inversent le bit-twiddling dans des unpackers récupèrent parfois des conjonctions inversées plutôt qu'un simple AND ; disposer d'un oracle déterministe qui n'utilise jamais en silence une extension de signe sur trente-deux bits évite le piège classique du portage entre langages.
Cas d’usage
Contrôle de devoirs au niveau portes et HDL
Vérifiez des résultats de bus NAND multi-bits sur 4, 8 ou 16 bits face à des tables de vérité dessinées à la main et des testbenches HDL d'étudiants avec colonnes binaires alignées.
Logique de masque inversé en micrologiciel
Confirmez la négation de statut et masque pour les motifs de registre activer-quand-zéro, et documentez les cartes de champs à largeur fixe dans les notes de pilote.
Questions fréquentes
Comment calculer le NAND bit à bit de deux entiers ?
Envoyez les entiers sûrs a et b plus width (1–53).
Quelle est la table de vérité du NAND ?
0 NAND 0 = 1, 0 NAND 1 = 1, 1 NAND 0 = 1, 1 NAND 1 = 0. Chaque bit du résultat vaut 0 seulement là où les deux opérandes ont 1 ; c'est l'AND inversé.
Pourquoi faut-il une largeur de bits ?
Le NAND est le NOT de l'AND ; sans largeur fixe le complément d'un entier est une infinité de uns en complément à deux. La largeur w définit le bus : seuls les w bits bas sont conservés après inversion.
Comment les opérandes négatifs sont-ils traités ?
Les négatifs sont des entiers sûrs valides ; seuls leurs bits bas de largeur width (troncature en complément à deux vers un champ non signé de w bits) participent à l'AND et au NAND.
Pourquoi dit-on que le NAND est une porte universelle ?
Parce que toute fonction logique peut se construire uniquement avec des portes NAND : en les enchaînant, on obtient NOT, AND et OR. C'est pourquoi les manuels et les bibliothèques de circuits le traitent comme une brique de base, et les travaux pratiques demandent de le démontrer.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/bitwise-nand \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":12,"b":10,"width":8}'const res = await fetch("https://api.kit.forhosting.com/dev/bitwise-nand", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 12,
"b": 10,
"width": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bitwise-nand",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 12,
"b": 10,
"width": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bitwise-nand", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":12,"b":10,"width":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":12,"b":10,"width":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bitwise-nand", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"a": 12,
"b": 10,
"width": 8
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bitwise_nand",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Une validation en échec n'est pas facturée ; chaque appel réussi coûte le prix de base publié $0.002.
Contrat d'entrée, forme de la réponse et comportement d'erreur
Width doit être un entier de un à cinquante-trois inclus pour que le masque de uns reste dans la plage des entiers sûrs. Exemple : a égal à douze, b égal à dix et width égal à huit donnent des masqués douze et dix, un AND égal à huit et un NAND égal à deux cent quarante-sept, car en binaire 00001100 AND 00001010 vaut 00001000, inversé et masqué sur huit bits vaut 11110111. Envoyez en POST un corps JSON avec trois champs entiers obligatoires : a et b comme opérandes, et width comme le nombre de bits. Chacun de a et b peut arriver comme nombre JSON ou comme chaîne numérique en décimal, ou avec un préfixe 0x, 0b ou 0o pour l'hexadécimal, le binaire ou l'octal. Les valeurs doivent être des entiers sûrs finis dans plus ou moins Number.MAX_SAFE_INTEGER ; fractions, Infinity, NaN, chaînes vides et champs manquants échouent avec invalid_input en nommant le champ, et ces échecs ne sont pas facturés. Les alias optionnels x, left ou first se mappent sur a ; y, right ou second sur b ; et bits, bit_width, nbits ou w sur width. En cas de succès le corps renvoie a, b et width, a_masked et b_masked comme tranches de largeur basse, and_result comme l'AND masqué et result comme la valeur NAND. Il fournit aussi a_binary, b_binary et result_binary avec préfixe 0b et remplissage de zéros jusqu'à width, plus a_hex, b_hex et result_hex avec préfixe 0x, une courte chaîne d'opération du type douze NAND dix sur huit bits égale deux cent quarante-sept, et une formule rappelant que result est la négation de a et b masquée à la largeur.
Où un calculateur NAND bit à bit apporte une vraie valeur
Comme l'implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Cas d'intégration
Fixtures CI pour opérations bit indépendantes du langage
Générez des vecteurs NAND attendus en décimal, binaire et hex pour que les tests unitaires s'accordent entre langages qui divergent sur la largeur bit à bit de 32 bits.
Questions techniques
Combien coûte le calculateur NAND bit à bit ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.