ForHosting KIT · Utilidades de desarrollo

Calculadora de distancia de Hamming entre enteros

La distancia de Hamming entre dos enteros es el número de posiciones de bit en las que difieren sus representaciones binarias.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Esta calculadora aplica el método estándar: calcula el XOR bit a bit de ambos valores y cuenta los bits activados del resultado. Puede usarla para comparar indicadores, máscaras, identificadores compactos, estados codificados o vectores de prueba sin alinear cadenas binarias manualmente. Acepta enteros seguros de JavaScript no negativos, incluido cero, y muestra tanto el XOR como su forma binaria.

Qué mide la distancia de Hamming entre enteros

La distancia de Hamming se definió para cadenas de igual longitud, pero los enteros admiten una interpretación natural como cadenas de bits. Cada entero se escribe en base dos y se presuponen ceros iniciales cuando una representación es más corta. Una posición suma uno si un entero contiene allí un bit cero y el otro un bit uno; las posiciones coincidentes no suman. Así, al comparar máscaras de permisos se sabe cuántos indicadores cambiaron, y al comparar estados compactos se obtiene el número de características binarias alternadas. El resultado cuenta posiciones: no expresa la diferencia aritmética entre los números. Dos valores cercanos pueden diferir en muchos bits y dos valores alejados, en uno solo. La capacidad acepta enteros seguros no negativos para que cada número conserve una representación exacta tanto en el controlador de la API como en el navegador. Cero es válido, y su distancia respecto de otro entero equivale al número de bits activados de este último.

Cómo XOR y el recuento de bits producen el resultado

O exclusivo, normalmente escrito XOR, es la operación esencial porque su tabla de verdad coincide con la definición de un bit diferente. XOR genera cero cuando los dos bits alineados coinciden y uno cuando difieren. Tras aplicar XOR a los enteros, solo queda contar cuántos bits uno contiene el resultado. La implementación utiliza el método de Brian Kernighan: en cada iteración, restar uno al valor actual y aplicar AND bit a bit elimina su bit activado de menor peso. Por ello, el bucle se ejecuta una vez por cada posición diferente y no por cada posición posible. Internamente se usa aritmética BigInt, lo que evita que los operadores bit a bit ordinarios de JavaScript reduzcan silenciosamente los valores a enteros con signo de 32 bits. El XOR devuelto sigue siendo seguro como número normal porque no puede activar un bit superior a los presentes en los enteros validados. También se entrega la cadena binaria para facilitar la comprobación.

Cómo elegir las entradas e interpretar la respuesta

Indique ambos valores en los campos a y b. Cada uno debe ser un entero desde cero hasta el mayor entero representable exactamente en JavaScript; se rechazan fracciones, números negativos, cadenas numéricas, infinitos y campos ausentes. La respuesta contiene xor, binary_xor y hamming_distance. El XOR decimal resulta práctico para posteriores operaciones con máscaras, binary_xor muestra las posiciones que difieren y hamming_distance proporciona su cantidad. Los ceros iniciales se omiten porque nunca modifican la distancia. Si sus valores de origen superan el intervalo de enteros seguros, consérvelos fuera de esta capacidad en vez de redondearlos, pues el redondeo puede alterar bits bajos y producir una distancia engañosa. Una integración habitual compara el recuento con un umbral, por ejemplo para aceptar un código con un bit cambiado, señalar un estado con varias alternancias o verificar vectores conocidos. La operación es simétrica: intercambiar a y b no cambia la salida, y comparar cualquier valor consigo mismo siempre produce cero.

Comparar máscaras de funciones o permisos

Cuente cuántos indicadores individuales cambiaron entre dos máscaras enteras almacenadas e inspeccione la máscara XOR que los identifica.

Validar código de manipulación de bits

Genere una distancia esperada determinista y una representación XOR para pruebas unitarias, ejercicios o comprobaciones de algoritmos.

Medir cambios de estado codificados

Resuma cuántas características binarias difieren entre dos estados compactos sin confundir cambios de bits con una resta numérica.

¿Cuánto cuesta esta capacidad?

Cada solicitud a la API cuesta $0.002. El mismo cálculo determinista también puede ejecutarse en el navegador.

¿Por qué se usa XOR para calcular la distancia de Hamming?

XOR coloca un uno exactamente donde difieren los bits de entrada; contar esos bits activados proporciona la distancia.

¿Se cuentan los ceros iniciales?

No. Coinciden con los ceros iniciales implícitos del otro entero no negativo y, por tanto, no aumentan la distancia.

¿Puedo enviar enteros negativos?

No. Los valores negativos requieren elegir una anchura y una representación con signo, por lo que solo se admiten enteros no negativos.

¿Cuál es el mayor valor admitido?

Cada entrada puede ser cualquier entero seguro de JavaScript no negativo, hasta 9,007,199,254,740,991.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

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

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

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"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →