Divisão binária
Divida dois números binários sem sinal e obtenha o quociente e o resto exatos com cada etapa de restauração: 110101 dividido por 101 dá 1010 e resto 11. Cada ciclo mostra o deslocamento, a comparação e se o divisor foi subtraído. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Dividendo
- 110101
- Divisor
- 101
- Quociente
- 1010
- Resto
- 11
Esta calculadora de divisão binária divide dois inteiros sem sinal em base dois e retorna quociente e resto binários exatos. Ela também mostra cada deslocamento, comparação, subtração e decisão de restauração do algoritmo clássico usado para explicar hardware aritmético. Você informa sequências formadas apenas por zeros e uns, com o prefixo opcional 0b, e a calculadora normaliza os zeros à esquerda antes do processamento. Como a implementação trabalha diretamente com sequências de bits, sem convertê-las em números JavaScript, entradas grandes continuam exatas.
Como o quociente e o resto binários são definidos
A divisão binária obedece à mesma identidade inteira da divisão longa decimal: o dividendo é igual ao divisor multiplicado pelo quociente, mais o resto, e o resto é sempre menor que o divisor. Apenas os algarismos escritos e os valores posicionais mudam. Cada posição binária representa uma potência de dois, portanto o quociente pode ser montado um bit por vez, do bit mais significativo ao menos significativo do dividendo.
Um bit de quociente igual a um indica que o divisor cabe no resto parcial atual; zero indica que não cabe. Depois que o último bit do dividendo é consumido, o quociente acumulado e o resto parcial formam a resposta. A calculadora aceita somente inteiros sem sinal, mantendo o rastreamento concentrado na operação de magnitude executada pelo divisor de hardware.
Zeros à esquerda são removidos das entradas e saídas normalizadas. Dividendo zero é válido e produz quociente e resto zero. O prefixo 0b é aceito, mas espaços internos, algarismos decimais, sinais e pontos fracionários são recusados para preservar um contrato inequívoco no nível dos bits.
Como interpretar o rastreamento da divisão restauradora
O rastreamento contém um ciclo para cada bit do dividendo normalizado. No começo do ciclo, o resto atual é deslocado para a esquerda e o próximo bit do dividendo entra na posição menos significativa. Em seguida, o algoritmo compara esse resto deslocado ao divisor.
Quando o divisor cabe, ele é subtraído, um é acrescentado ao quociente e a diferença segue para o próximo ciclo. Quando não cabe, a tentativa de subtração seria negativa; na interpretação de hardware, o resto não negativo anterior é restaurado e zero é acrescentado ao quociente. Essa é uma representação didática da divisão restauradora: um circuito otimizado pode subtrair especulativamente e restaurar depois, enquanto este software determinístico compara primeiro e executa a transição de estado equivalente.
Como a subtração usa sequências binárias e empréstimo explícito, o cálculo não passa por ponto flutuante nem perde bits baixos em operandos maiores que uma palavra de máquina.
Como usar o resultado no estudo e nos testes de hardware
O objeto retornado atende tanto a explicações humanas quanto a verificações automatizadas. Estudantes de projeto digital podem comparar cada ciclo aos registradores de um caminho de dados com resto, divisor, subtrator, comparador, quociente e controlador. Autores de HDL podem transformar uma resposta correta em vetor esperado para um testbench Verilog ou VHDL, verificando também a propriedade de que o resto final é menor que o divisor.
Os mesmos vetores ajudam a validar divisores bit a bit em firmware para processadores sem instrução nativa de divisão. Cada operando é limitado a 1024 bits para manter o rastreamento sob controle. Divisão com sinal, ponto fixo, arredondamento e algoritmos não restauradores ou SRT exigem regras diferentes e não fazem parte desta capacidade.
Casos de uso
Ensinar divisão restauradora
Mostre cada deslocamento, subtração condicional, bit do quociente e resto restaurado em uma aula de lógica digital.
Gerar vetores de teste HDL
Crie quocientes e restos determinísticos para módulos divisores sem sinal e compare seus estados a cada ciclo.
Conferir firmware bit a bit
Valide uma rotina de divisão em equipamentos sem instrução nativa de divisão inteira, preservando toda a precisão.
Perguntas frequentes
O que é divisão binária restauradora?
É um algoritmo de deslocamento e subtração que produz um bit do quociente por ciclo e restaura o resto parcial quando o divisor não cabe.
A calculadora retorna o resto?
Sim. Ela retorna o quociente binário e o resto binário final, que é sempre menor que um divisor válido diferente de zero.
Posso dividir números binários maiores que um inteiro JavaScript?
Sim. O algoritmo opera diretamente em sequências de até 1024 bits e nunca converte os operandos em números de ponto flutuante.
Números binários com sinal ou fracionários são aceitos?
Não. Esta capacidade aceita apenas inteiros binários sem sinal. Correção de sinal e escala de ponto fixo exigem convenções adicionais.
O que acontece se eu dividir por zero?
Você não obtém resultado, porque nenhum quociente satisfaz a divisão quando o divisor é zero. Já um dividendo zero é válido e dá simplesmente quociente zero e resto zero.
Ferramentas relacionadas
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/binary-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dividend":"110101","divisor":"101"}'const res = await fetch("https://api.kit.forhosting.com/elec/binary-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dividend": "110101",
"divisor": "101"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/binary-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dividend": "110101",
"divisor": "101"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/binary-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dividend":"110101","divisor":"101"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dividend":"110101","divisor":"101"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/binary-division", 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
{
"dividend": "110101",
"divisor": "101"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.binary_division",
"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.
Limites
max_chars | 1024 |
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. |
Notas técnicas
A mesma rotina determinística atende ao navegador e à API, sendo útil em aulas de lógica digital, exemplos resolvidos, vetores de teste e verificações de implementação.
Como o quociente e o resto binários são definidos
Divisor zero nunca é válido e gera invalid_input.
Como interpretar o rastreamento da divisão restauradora
A resposta identifica a ramificação como subtract_divisor ou restore_remainder e registra o bit recebido, o resto deslocado, o bit do quociente e o resto resultante. Acompanhe a coluna de resto para entender cada escolha ou concatene quotient_bit para reconstruir o quociente antes da normalização.
Como usar o resultado no estudo e nos testes de hardware
Os campos superiores dividend e divisor exibem os operandos normalizados, enquanto quotient e remainder trazem o resultado compacto. O campo method identifica o rastreamento como restoring_division, e o array ordenado steps fornece evidências de cada ciclo para exercícios, planejamento de formas de onda ou testes unitários. O cálculo não depende de rede, aleatoriedade, armazenamento ou relógio; entradas idênticas sempre geram o mesmo JSON. O uso rápido no navegador é grátis, e solicitações automatizadas pela API usam o preço-base publicado de US$ 0,002 por item.
Perguntas técnicas
O que acontece quando o divisor é zero?
A solicitação falha com invalid_input porque a divisão por zero não possui resultado válido de quociente e resto.
Quanto custa uma solicitação de API?
O cálculo no navegador é grátis. Cada item processado pela API usa o preço-base publicado de US$ 0,002; entradas inválidas não são cobradas.