Multiplicação binária
Esta calculadora de multiplicação binária multiplica dois inteiros sem sinal na base 2 e mostra como a resposta é construída.
Executar grátis
Para cada bit do multiplicador, ela desloca o multiplicando até a posição correta, informa se a linha deve ser somada ou ignorada e apresenta o acumulador após a etapa. A resposta inclui operandos normalizados, todos os produtos parciais, o produto binário final e uma equação compacta. Como o cálculo trabalha com strings binárias em vez de números de ponto flutuante, o resultado permanece exato mesmo quando as entradas são muito maiores que os inteiros comuns de máquina.
Informe dois inteiros binários e consulte o resultado
Digite o multiplicando e o multiplicador como strings formadas apenas por 0 e 1. Você pode usar o prefixo 0b em qualquer operando, e os zeros iniciais sem valor são removidos antes da exibição. A calculadora considera ambos os valores inteiros sem sinal; por isso, rejeita sinais, pontos decimais, separadores e espaços internos em vez de tentar adivinhar seu significado. A resposta começa com os operandos normalizados e termina com os campos de produto, equação e método. Entre eles fica a lista partial_products, ordenada do bit menos significativo do multiplicador ao mais significativo. Cada linha registra a posição e o valor do bit, o multiplicando deslocado, a operação de soma ou omissão, o produto parcial e o acumulador depois da etapa. Dessa forma, a saída serve tanto como resposta rápida quanto como explicação verificável do cálculo.
Entenda os produtos parciais de deslocamento e soma
A multiplicação binária longa é direta porque cada dígito do multiplicador só pode ser zero ou um. Na posição zero, o multiplicando permanece igual. Na posição um, ele é deslocado uma casa para a esquerda com a inclusão de um zero, duplicando seu valor. A posição dois acrescenta dois zeros e multiplica por quatro, e o padrão continua nas posições superiores. Quando o bit atual é um, o valor deslocado vira um produto parcial e é somado ao acumulador. Quando é zero, a linha contribui com zero e recebe a operação de omissão. Mesmo assim, essas linhas aparecem para preservar o alinhamento e mostrar onde há zeros. A adição binária segue da direita para a esquerda com transporte, sem conversão decimal ou aproximação. A sequência de acumuladores revela todo o algoritmo e ajuda a localizar diferenças com precisão.
Use multiplicação exata no ensino e em sistemas
A saída estruturada atende a diferentes necessidades. Em aulas de lógica digital, as linhas relacionam a notação posicional aos registradores de deslocamento, somadores e decisões de controle de um multiplicador simples. Em exercícios de programação, fornecem referências para testar uma rotina bit a bit sem esconder o processo em um único produto. Durante a depuração, o acumulador facilita encontrar um deslocamento incorreto: compare as linhas até a primeira divergência e examine aquela posição. As entradas são limitadas para manter previsível o tamanho da resposta, pois cada bit cria uma linha, mas a aritmética continua exata e determinística. Você pode usar gratuitamente a calculadora no navegador ou chamar a API por US$ 0,002 por solicitação para criar exercícios, validar emuladores, conferir vetores HDL ou incorporar etapas reproduzíveis a outro aplicativo.
Casos de uso
Ensinar multiplicação binária longa
Mostre como cada bit seleciona um produto parcial deslocado e altera a soma acumulada.
Conferir exercícios de lógica digital
Compare as linhas esperadas com um multiplicador de hardware, emulador ou simulação HDL.
Testar código aritmético exato
Gere produtos e acumuladores determinísticos para testes unitários de implementações binárias.
Perguntas frequentes
Qual formato de entrada é aceito?
Use strings sem sinal contendo somente 0 e 1. O prefixo 0b é opcional, mas sinais, espaços internos e pontos fracionários não são aceitos.
Por que as linhas de bits zero são incluídas?
Um bit zero não acrescenta valor, porém sua linha preserva o alinhamento posicional e explica por que o valor deslocado foi ignorado.
A calculadora converte os valores para decimal?
Não. Ela soma strings binárias diretamente e, assim, evita perda de precisão por conversão de ponto flutuante.
Em que direção os produtos parciais são listados?
Eles começam na posição zero, o bit menos significativo à direita, e seguem para posições maiores à esquerda.
Quanto custa um cálculo pela API?
Cada solicitação da API custa US$ 0,002. A versão interativa pode ser executada localmente no navegador sem chamar a API.
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-multiplication \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"multiplicand":"1011","multiplier":"110"}'const res = await fetch("https://api.kit.forhosting.com/elec/binary-multiplication", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"multiplicand": "1011",
"multiplier": "110"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/binary-multiplication",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"multiplicand": "1011",
"multiplier": "110"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/binary-multiplication", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"multiplicand":"1011","multiplier":"110"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"multiplicand":"1011","multiplier":"110"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/binary-multiplication", 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
{
"multiplicand": "1011",
"multiplier": "110"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.binary_multiplication",
"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_bits | 512 |
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. |