Calcolatore NAND bit a bit
12 NAND 10 a 8 bit dà 247 (11110111 in binario, f7 in esadecimale), dopo un AND intermedio di 8. Scelga una larghezza da 1 a 53 bit e veda ogni passaggio in decimale, binario ed esadecimale, come su un bus a larghezza fissa. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 12
- B
- 10
- Larghezza
- 8
- Risultato
- 247
- A mascherato
- 12
- B mascherato
- 10
- Risultato AND
- 8
La NAND bit a bit, l'AND invertito di due interi, è la porta universale della logica digitale che produce zero solo quando entrambi i bit di ingresso sono uno. Gli studenti che verificano le tavole di verità, gli ingegneri embedded che controllano la logica di maschera e inversione sui bus e gli analisti di reverse engineering che ricostruiscono le operazioni sui bit nel firmware hanno bisogno di un modo deterministico per vedere quanto vale dodici NAND dieci a otto bit in decimale, binario e esadecimale senza aprire un REPL che tronchi in silenzio a trentadue bit. Questo calcolatore NAND bit a bit accetta due interi sicuri e una larghezza di bit da uno a cinquantatré, maschera ciascun operando ai bit bassi della larghezza, applica la NAND matematica come complemento dell'AND sotto quella maschera e restituisce il risultato non segnato con rappresentazioni binarie riempite di zeri e esadecimali, più l'AND intermedio affinché Lei possa verificare ogni fase.
Cosa significa la NAND bit a bit e perché conta la larghezza
La NAND di due bit è falsa solo quando entrambi i bit sono veri: zero NAND zero è uno, zero NAND uno è uno, uno NAND zero è uno e uno NAND uno è zero. Quella tavola di verità è esattamente l'AND invertito, quindi una NAND multi-bit è il complemento bit a bit dell'AND delle due parole. In logica digitale una singola porta NAND è universale: qualsiasi funzione booleana può essere costruita solo con NAND, ed è per questo che manuali e librerie silicio la trattano come primitiva.
Nei linguaggi di programmazione raramente esiste un operatore NAND dedicato; si scrive la negazione di a e b, ma gli operatori bit a bit del linguaggio usano spesso larghezze macchina fisse e aritmetica con estensione di segno che si discostano da un modello pulito di bus non segnato.
Questo calcolatore prende quindi una larghezza w esplicita da uno a cinquantatré, forma la maschera di w uni, maschera ciascun operando a quei bit bassi, calcola l'AND sotto la maschera, poi inverte e rimaschera in modo che il risultato sia sempre un valore non segnato di w bit. Quel contratto a larghezza fissa corrisponde a come gli strumenti HDL e schematici pensano un bus: esistono solo le corsie attive.
I campi binari sono riempiti di zeri fino a w per allineare le colonne alle tavole di verità disegnate a mano, e i campi hex mostrano la stessa magnitudine non segnata per un rapido confronto con i dump dei registri. I negativi sono accettati come interi sicuri; partecipano solo i loro w bit bassi, equivalenti a una troncazione in complemento a due in un campo non segnato di larghezza w anziché inventare uni infiniti fuori dal bus.
Dove un calcolatore NAND bit a bit crea valore concreto
I laboratori di progettazione digitale e FPGA chiedono ancora agli studenti di costruire bus NAND multi-bit e dimostrare che cascate di porte NAND realizzano AND, OR e NOT; un calcolatore live che riporta decimale, binario e hex a una larghezza scelta consente di controllare i compiti senza disegnare ogni colonna a mano.
Il firmware embedded spesso implementa controlli di maschera invertita —abilitare una periferica solo quando un bit è a zero— codificando la negazione di stato e maschera, che è esattamente NAND sul campo rilevante; verificare tali espressioni a otto o sedici bit individua errori di maschera di un bit prima del silicio.
I corsi di architettura dei calcolatori introducono il tratto di Sheffer e la completezza funzionale; mostrare che a NAND b è la negazione di a e b alla stessa larghezza ancora la teoria a numeri che lo studente può ricalcolare. Le note di sicurezza che invertano il bit-twiddling negli unpacker a volte recuperano congiunzioni invertite anziché un semplice AND; disporre di un oracolo deterministico che non usa mai in silenzio l'estensione di segno a trentadue bit evita la classica trappola del porting tra linguaggi.
Casi d'uso
Controllo compiti a livello di porta e HDL
Verifichi risultati di bus NAND multi-bit a 4, 8 o 16 bit rispetto a tavole di verità disegnate a mano e testbench HDL degli studenti con colonne binarie allineate.
Logica di maschera invertita nel firmware
Confermi la negazione di stato e maschera per i pattern di registro abilita-quando-zero e documenti le mappe di campi a larghezza fissa nelle note del driver.
Domande frequenti
Come si calcola la NAND bit a bit di due interi?
Invii gli interi sicuri a e b più width (1–53).
Qual è la tavola di verità della NAND?
0 NAND 0 = 1, 0 NAND 1 = 1, 1 NAND 0 = 1, 1 NAND 1 = 0. Ogni bit del risultato è 0 solo dove entrambi gli operandi hanno 1; è l'AND invertito.
Perché serve una larghezza di bit?
La NAND è il NOT dell'AND; senza larghezza fissa il complemento di un intero è una infinità di uni in complemento a due. La larghezza w definisce il bus: solo i w bit bassi restano dopo l'inversione.
Come vengono gestiti gli operandi negativi?
I negativi sono interi sicuri validi; partecipano solo i loro bit bassi di larghezza width (troncazione in complemento a due in un campo non segnato di w bit) all'AND e alla NAND.
Perché la NAND si chiama porta universale?
Perché qualsiasi funzione logica si può costruire solo con porte NAND: concatenandole si ottengono NOT, AND e OR. Per questo i manuali e le librerie di circuiti la trattano come un elemento di base, e i laboratori di elettronica digitale chiedono di dimostrarlo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"a": 12,
"b": 10,
"width": 8
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bitwise_nand",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La validazione fallita non viene addebitata; ogni chiamata riuscita costa il prezzo base pubblicato $0.002.
Contratto di ingresso, forma della risposta e comportamento di errore
Width deve essere un intero da uno a cinquantatré inclusi affinché la maschera di uni resti nell'intervallo degli interi sicuri. Esempio: a uguale a dodici, b uguale a dieci e width uguale a otto producono mascherati dodici e dieci, AND uguale a otto e NAND uguale a duecentoquarantasette, perché in binario 00001100 AND 00001010 è 00001000 e invertito e mascherato a otto bit è 11110111. Invii in POST un corpo JSON con tre campi interi obbligatori: a e b come operandi e width come conteggio di bit. Ciascuno di a e b può arrivare come numero JSON o come stringa numerica in decimale, oppure con prefisso 0x, 0b o 0o per esadecimale, binario o ottale. I valori devono essere interi sicuri finiti entro più o meno Number.MAX_SAFE_INTEGER; frazioni, Infinity, NaN, stringhe vuote e campi mancanti falliscono con invalid_input nominando il campo, e tali fallimenti non vengono addebitati. Gli alias opzionali x, left o first si mappano su a; y, right o second su b; e bits, bit_width, nbits o w su width. In caso di successo il corpo ripete a, b e width, restituisce a_masked e b_masked come fette a larghezza bassa, and_result come l'AND mascherato e result come il valore NAND. Fornisce inoltre a_binary, b_binary e result_binary con prefisso 0b e riempimento di zeri fino a width, più a_hex, b_hex e result_hex con prefisso 0x, una breve stringa di operazione del tipo dodici NAND dieci a otto bit uguale duecentoquarantasette, e una formula che riafferma che result è la negazione di a e b mascherata alla larghezza.
Dove un calcolatore NAND bit a bit crea valore concreto
Poiché l'implementazione è parse di livello A pura, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita.
Casi di integrazione
Fixture CI per operazioni bit indipendenti dal linguaggio
Generi vettori NAND attesi in decimale, binario e hex affinché i test unitari coincidano tra linguaggi che non concordano sulla larghezza bit a bit a 32 bit.
Domande tecniche
Quanto costa il calcolatore NAND bit a bit?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non viene addebitato.