Calcolatore di uscite del decoder binario e intervallo
Un decoder binario trasforma un codice di ingresso di n bit in una selezione attiva fra più linee di uscita.
Esegui gratis nel browser
Questo calcolatore applica la relazione fondamentale m = 2^n e associa le selezioni univoche a un intervallo inclusivo di indirizzi del sistema. Inserisca il numero di linee di ingresso o di indirizzo e, se necessario, il primo indirizzo assegnato al dispositivo. Il risultato riporta la notazione del decoder, il numero di uscite, gli indirizzi univoci e gli estremi decimali ed esadecimali dell'intervallo.
Dalle linee di ingresso alle uscite del decoder
Un ingresso binario a n linee può rappresentare 2^n configurazioni di bit distinte, perché ogni linea ha due stati indipendenti. Un decoder assegna un'uscita a ciascuna configurazione; pertanto, un decoder completo ideale richiede m = 2^n uscite. Per esempio, tre linee rappresentano i valori da 000 a 111 e pilotano otto uscite selezionabili: è un decoder 3 a 8. Quattro linee generano sedici configurazioni e un decoder 4 a 16. Inserisca il numero in input_lines. Il calcolatore restituisce output_lines e unique_addresses con lo stesso valore, oltre alla notazione convenzionale. Il calcolo presuppone un decoder binario completo, non un dispositivo parziale che ometta alcune combinazioni. In genere i pin di abilitazione non aumentano le combinazioni decodificate: stabiliscono se il dispositivo è attivo, mentre gli n ingressi di selezione determinano quale delle 2^n uscite viene scelta.
Interpretare l'intervallo di indirizzi selezionato
In un sistema di decodifica degli indirizzi, ogni uscita può selezionare un registro, una posizione di memoria, una periferica o un blocco subordinato. Un decoder a n ingressi può quindi selezionare in modo univoco 2^n indirizzi consecutivi quando le uscite corrispondono alle combinazioni dei bit meno significativi. base_address identifica la prima posizione del blocco. L'ultima è base_address + 2^n - 1, poiché entrambi gli estremi sono inclusi. Un decoder a quattro linee con base decimale 4096 copre sedici indirizzi: da 4096 a 4111, ovvero da 0x1000 a 0x100F. La risposta indica esplicitamente che l'intervallo è inclusivo e mostra gli estremi decimali ed esadecimali per evitare errori di un'unità. Se la base non è indicata, viene usato zero e l'intervallo canonico è da 0 a 2^n - 1. L'hardware reale deve inoltre decodificare i bit di indirizzo superiori necessari a fissare la base ed evitare indirizzi speculari.
Applicare il risultato all'hardware reale
Usi il numero di uscite per scegliere un circuito integrato decoder, disegnare tabelle della verità o stabilire quanti segnali di selezione del chip possono fornire determinate linee di indirizzo. Usi l'intervallo per documentare una mappa di memoria o verificare eventuali sovrapposizioni fra allocazioni adiacenti. L'indirizzo base dovrebbe coincidere con la posizione del blocco nel sistema; allinearlo alla dimensione del blocco spesso mantiene costanti i bit superiori. Il calcolatore ammette qualsiasi base non negativa, così da rappresentare anche esercizi e mappature insolite. Accetta da una a cinquantadue linee e mantiene ogni risultato nell'intervallo degli interi esatti di JavaScript. Una richiesta viene rifiutata se l'indirizzo finale supera tale limite. Il calcolo non descrive polarità elettrica, ritardo di propagazione, fan-out, abilitazione o livello attivo delle uscite; consulti la scheda tecnica del componente. Non riserva neppure spazio in un sistema reale. L'uso automatizzato dell'API costa $0.002 per richiesta.
Casi d'uso
Scegliere la dimensione del decoder
Converta il numero di linee di selezione disponibili nel numero esatto di uscite one-hot richieste dal progetto logico.
Organizzare una mappa delle periferiche
Calcoli gli estremi inclusivi decimali ed esadecimali di un blocco periferico collocato a uno specifico indirizzo base.
Verificare esercizi di logica digitale
Controlli la notazione n a m, il numero di uscite e il relativo intervallo senza commettere errori di un'unità.
Domande frequenti
Quante uscite ha un decoder a n linee?
Un decoder binario completo ha 2^n uscite, una per ogni possibile combinazione degli n bit di ingresso.
Perché l'indirizzo finale è la base più 2^n meno uno?
L'intervallo è inclusivo. Il primo indirizzo occupa già una delle 2^n posizioni, quindi lo scostamento finale è 2^n - 1.
Gli ingressi di abilitazione contano come linee del decoder?
No. Per n usi gli ingressi binari indipendenti di selezione o indirizzo. L'abilitazione controlla la decodifica, ma non aggiunge selezioni ordinarie.
Posso inserire un indirizzo base esadecimale?
Il contratto di ingresso accetta un intero decimale non negativo. La risposta mostra entrambi gli estremi in forma decimale ed esadecimale.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il calcolo è deterministico e può essere eseguito gratuitamente anche nel browser.
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/elec/decoder-outputs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input_lines":4}'const res = await fetch("https://api.kit.forhosting.com/elec/decoder-outputs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input_lines": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/decoder-outputs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input_lines": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/decoder-outputs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input_lines":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input_lines":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/decoder-outputs", 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
{
"input_lines": 4
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.decoder_outputs",
"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. |