ForHosting KIT · Ferramentas para dev

Calculadora de distância de Hamming entre inteiros

A distância de Hamming entre dois inteiros é o número de posições de bits em que suas representações binárias diferem.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Esta calculadora aplica o procedimento padrão: calcula o XOR bit a bit dos valores e conta os bits definidos no resultado. Você pode comparar flags, máscaras, identificadores compactos, estados codificados ou vetores de teste sem alinhar sequências binárias manualmente. São aceitos inteiros seguros não negativos do JavaScript, inclusive zero, e o resultado inclui o XOR e sua forma binária.

O que a distância de Hamming entre inteiros mede

A distância de Hamming foi definida para sequências de mesmo comprimento, mas inteiros têm uma interpretação natural como sequências de bits. Cada inteiro é escrito na base dois, com zeros à esquerda implícitos quando uma representação é menor. Uma posição acrescenta um à distância quando um inteiro tem bit zero e o outro tem bit um; posições iguais não acrescentam nada. Comparar máscaras de permissões revela quantas flags mudaram, enquanto comparar estados compactos mostra quantas características binárias foram alternadas. O resultado é uma contagem de posições, não a diferença aritmética entre os números. Valores numericamente próximos podem diferir em muitos bits, e valores distantes podem diferir em apenas um. Esta capacidade aceita inteiros seguros não negativos para que cada número tenha representação exata no handler da API e no navegador. Zero é válido, e sua distância até outro inteiro corresponde ao número de bits definidos nesse outro valor.

Como XOR e a contagem de bits produzem a resposta

O ou exclusivo, normalmente escrito XOR, é a operação central porque sua tabela verdade corresponde à definição de bits diferentes. XOR produz zero quando dois bits alinhados são iguais e um quando diferem. Depois de aplicar XOR aos inteiros, basta realizar uma contagem populacional dos bits um. A implementação usa o método de Brian Kernighan: em cada iteração, subtrair um do valor atual e aplicar AND bit a bit elimina o bit definido menos significativo. Assim, o laço executa uma vez por posição diferente, não por posição possível. A aritmética BigInt é usada internamente para impedir que os operadores bit a bit comuns do JavaScript reduzam silenciosamente valores a inteiros de 32 bits com sinal. O XOR retornado pode continuar como número comum, pois não define bits acima dos existentes nos inteiros seguros validados. A sequência binária do XOR também é fornecida para facilitar verificações em depuração ou ensino.

Como escolher as entradas e interpretar o resultado

Informe os valores nos campos a e b. Cada um deve ser um inteiro entre zero e o maior inteiro representado exatamente pelo JavaScript; frações, negativos, sequências numéricas, infinitos e campos ausentes são rejeitados. A resposta contém xor, binary_xor e hamming_distance. O xor decimal é útil em operações posteriores com máscaras, binary_xor mostra quais posições diferem e hamming_distance fornece a contagem. Zeros à esquerda são omitidos porque não alteram a distância. Se os valores originais forem maiores que o intervalo seguro, preserve-os fora desta capacidade em vez de arredondá-los, pois o arredondamento pode modificar bits inferiores e gerar uma distância enganosa. Integrações comuns usam a contagem como limite, por exemplo para aceitar um código com um bit alterado, sinalizar um estado com várias mudanças ou conferir uma implementação com vetores fixos. A operação é simétrica: trocar a e b mantém a saída, e comparar um valor consigo mesmo sempre resulta em zero.

Comparar máscaras de recursos ou permissões

Conte quantas flags individuais mudaram entre duas máscaras inteiras armazenadas e examine a máscara XOR que as identifica.

Validar código de manipulação de bits

Gere uma distância esperada determinística e uma representação XOR para testes unitários, exercícios ou verificações de algoritmos.

Medir mudanças de estados codificados

Resuma quantas características binárias diferem entre dois estados compactos sem confundir mudanças de bits com subtração numérica.

Quanto custa esta capacidade?

Cada solicitação à API custa US$ 0,002. O mesmo cálculo determinístico também pode ser executado no navegador.

Por que usar XOR para calcular a distância de Hamming?

XOR coloca um bit um exatamente onde os bits de entrada diferem; contar esses bits definidos fornece diretamente a distância.

Zeros à esquerda são contados?

Não. Eles coincidem com os zeros à esquerda implícitos do outro inteiro não negativo e não aumentam a distância.

Posso enviar inteiros negativos?

Não. Valores negativos exigem largura e representação com sinal definidas, portanto esta capacidade aceita apenas inteiros não negativos.

Qual é o maior valor aceito?

Cada entrada pode ser qualquer inteiro seguro não negativo do JavaScript, até 9,007,199,254,740,991.

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.

POSThttps://api.kit.forhosting.com/dev/hamming-distance-int

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/dev/hamming-distance-int \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a":29,"b":15}'
{
  "a": 29,
  "b": 15
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.hamming_distance_int",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →