Calculadora de saídas de decodificador binário e faixa
Um decodificador binário transforma um código de entrada de n bits em uma seleção ativa entre várias linhas de saída.
Executar grátis
Esta calculadora aplica a relação fundamental m = 2^n e mapeia essas seleções únicas para uma faixa inclusiva de endereços do sistema. Informe o número de linhas de entrada ou de endereço e, se necessário, o primeiro endereço atribuído ao dispositivo. Você receberá a notação do decodificador, o total de saídas, os endereços únicos e os limites decimal e hexadecimal da faixa.
Das linhas de entrada às saídas do decodificador
Uma entrada binária com n linhas representa 2^n padrões de bits diferentes, pois cada linha possui dois estados independentes. Um decodificador associa uma saída a cada padrão; assim, um decodificador completo ideal precisa de m = 2^n saídas. Por exemplo, três linhas representam de 000 a 111 e acionam oito saídas selecionáveis, formando um decodificador 3 para 8. Quatro linhas geram dezesseis padrões e um decodificador 4 para 16. Informe o total em input_lines. A calculadora retorna output_lines e unique_addresses com o mesmo valor, além da notação convencional. O cálculo pressupõe um decodificador binário completo, não um componente parcial que omita combinações. Em geral, pinos de habilitação não aumentam o número de combinações: eles determinam se o dispositivo participa, enquanto as n entradas de seleção definem qual das 2^n saídas será escolhida.
Como interpretar a faixa de endereços selecionada
Em um sistema de decodificação de endereços, cada saída pode selecionar um registrador, uma posição de memória, um periférico ou um bloco subordinado. Portanto, um decodificador de n entradas seleciona exclusivamente 2^n endereços consecutivos quando suas saídas correspondem às combinações dos bits menos significativos. base_address identifica a primeira posição do bloco. A última é base_address + 2^n - 1, pois os dois limites são inclusivos. Um decodificador de quatro linhas com base decimal 4096 cobre dezesseis endereços: de 4096 a 4111, ou de 0x1000 a 0x100F. A resposta identifica explicitamente a faixa como inclusiva e mostra limites decimais e hexadecimais para evitar erros de uma unidade. Sem uma base informada, usa-se zero, produzindo a faixa canônica de 0 a 2^n - 1. O hardware real também precisa decodificar os bits superiores necessários para fixar a base e impedir endereços espelhados.
Como aplicar o resultado ao hardware real
Use o total de saídas ao escolher um circuito integrado decodificador, desenhar tabelas-verdade ou determinar quantos sinais de seleção de chip um conjunto de linhas de endereço oferece. Use a faixa ao documentar um mapa de memória ou verificar se alocações vizinhas se sobrepõem. O endereço base deve corresponder à posição do bloco no sistema; alinhá-lo ao tamanho do bloco costuma manter constantes os bits superiores. A calculadora permite qualquer base não negativa para representar também exercícios e mapeamentos incomuns. Ela aceita de uma a cinquenta e duas linhas e mantém todos os resultados no intervalo de inteiros exatos do JavaScript. A solicitação é recusada se o endereço final ultrapassar esse limite. O cálculo não descreve polaridade elétrica, atraso de propagação, fan-out, habilitação ou saídas ativas em nível alto ou baixo; consulte a folha de dados do componente. Ele também não reserva espaço em um sistema real. O uso automatizado da API custa US$ 0,002 por solicitação.
Casos de uso
Escolher o tamanho do decodificador
Converta o número disponível de linhas de seleção na quantidade exata de saídas one-hot necessária ao projeto lógico.
Organizar um mapa de periféricos
Calcule os limites inclusivos em decimal e hexadecimal de um bloco periférico posicionado em um endereço base específico.
Conferir exercícios de lógica digital
Verifique a notação n para m, o total de saídas e a faixa correspondente sem cometer erros de uma unidade.
Perguntas frequentes
Quantas saídas possui um decodificador de n linhas?
Um decodificador binário completo possui 2^n saídas, uma para cada combinação possível dos n bits de entrada.
Por que o endereço final é a base mais 2^n menos um?
A faixa é inclusiva. O primeiro endereço já ocupa uma das 2^n posições; portanto, o deslocamento final é 2^n - 1.
Entradas de habilitação contam como linhas do decodificador?
Não. Para n, use as entradas binárias independentes de seleção ou endereço. A habilitação ativa a decodificação, mas não acrescenta seleções comuns.
Posso informar um endereço base hexadecimal?
O contrato de entrada aceita um inteiro decimal não negativo. A resposta apresenta os dois limites nas formas decimal e hexadecimal.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. O cálculo é determinístico e também pode ser executado gratuitamente no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"input_lines": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.decoder_outputs",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |