ForHosting KIT · Strumenti per sviluppatori

Calcolatore della distanza di Hamming tra interi

Inserisca due numeri interi e ottenga la loro distanza di Hamming: 29 e 15 differiscono in 2 posizioni di bit, perché il loro XOR è 18, cioè 10010 in binario. Utile per confrontare flag, maschere e stati codificati. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
A
29
B
15
Ottiene
Xor
18
XOR binario
10010
Distanza di Hamming
2

La distanza di Hamming tra due interi è il numero di posizioni in cui differiscono le rispettive rappresentazioni binarie. Questo calcolatore esegue l’operazione standard: calcola lo XOR bit per bit dei due valori e conta i bit impostati nel risultato. Può confrontare flag, maschere, identificatori compatti, stati codificati o vettori di test senza allineare manualmente stringhe binarie. Sono accettati tutti gli interi sicuri JavaScript non negativi, compreso zero; il risultato comprende lo XOR sia decimale sia binario.

Che cosa misura la distanza di Hamming tra interi

La distanza di Hamming nacque per stringhe di pari lunghezza, ma gli interi si prestano naturalmente a essere letti come stringhe di bit. Ogni intero viene scritto in base due e, quando una rappresentazione è più corta, si intendono presenti zeri iniziali. Una posizione aggiunge uno alla distanza se un valore contiene zero e l’altro uno; le posizioni uguali non contribuiscono.

Il confronto tra maschere di autorizzazioni indica quindi quanti flag sono cambiati, mentre quello tra stati compatti conta le caratteristiche binarie commutate. Il risultato è un conteggio di posizioni, non la differenza aritmetica: numeri vicini possono differire in molti bit e numeri lontani in uno solo. Zero è valido e la sua distanza da un altro intero coincide con il numero di bit impostati in quest’ultimo.

Come XOR e il conteggio dei bit generano la risposta

L’OR esclusivo, normalmente scritto XOR, è l’operazione fondamentale: restituisce zero quando due bit allineati coincidono e uno quando sono diversi. Dopo lo XOR dei due interi, occorre soltanto contare gli uno. L’implementazione usa il metodo di Brian Kernighan: a ogni iterazione, sottrarre uno e applicare AND elimina il bit impostato meno significativo.

Il ciclo viene quindi eseguito una volta per ogni posizione diversa, non per ogni posizione possibile. Internamente si usa BigInt, evitando che i normali operatori bit per bit di JavaScript restringano silenziosamente i valori a interi con segno di 32 bit. Lo XOR restituito rimane sicuro come numero normale perché non può impostare bit superiori a quelli già presenti negli ingressi validati.

Viene fornita anche la stringa binaria dello XOR, utile per verifiche, debug e attività didattiche.

Come scegliere gli ingressi e interpretare il risultato

Inserisca i valori nei campi a e b. Ciascuno deve essere un intero compreso tra zero e il massimo intero rappresentabile esattamente in JavaScript; frazioni, valori negativi, stringhe numeriche, infiniti e campi mancanti vengono rifiutati. Gli zeri iniziali sono omessi perché non modificano la distanza.

Se i valori originali superano l’intervallo sicuro, li conservi fuori da questa capacità invece di arrotondarli: l’arrotondamento può alterare i bit bassi. Le integrazioni possono confrontare il conteggio con una soglia, accettare un codice con un bit cambiato o verificare vettori noti. L’operazione è simmetrica: scambiare a e b non cambia l’uscita e confrontare un valore con sé stesso produce sempre zero.

Confrontare maschere di funzioni o permessi

Conti quanti flag sono cambiati tra due maschere intere e ispezioni la maschera XOR che li identifica.

Convalidare codice di manipolazione dei bit

Generi una distanza attesa deterministica e una rappresentazione XOR per test, esercizi o verifiche.

Misurare variazioni di stati codificati

Riassuma le caratteristiche binarie diverse tra due stati compatti senza confonderle con una sottrazione.

Quanto costa questa capacità?

Lo stesso calcolo deterministico può essere eseguito anche nel browser.

Perché si usa XOR per la distanza di Hamming?

XOR colloca un bit uno esattamente dove gli ingressi differiscono; contando tali bit si ottiene la distanza.

Gli zeri iniziali vengono contati?

No. Coincidono con gli zeri iniziali impliciti dell’altro intero non negativo e non aumentano la distanza.

Posso inviare interi negativi?

No. Richiedono una larghezza e una rappresentazione con segno prescelte; sono ammessi solo interi non negativi.

Qual è il massimo valore accettato?

Ogni ingresso può essere un intero sicuro JavaScript non negativo, fino a 9,007,199,254,740,991.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Che cosa misura la distanza di Hamming tra interi

La capacità ammette interi sicuri non negativi affinché ogni valore sia rappresentato esattamente sia dall’API sia dal browser.

Come scegliere gli ingressi e interpretare il risultato

La risposta contiene xor, binary_xor e hamming_distance. Lo xor decimale è pratico per successive operazioni sulle maschere, binary_xor mostra le posizioni diverse e hamming_distance ne fornisce il conteggio.

Leggi la documentazione completa del KIT →