ForHosting KIT · Strumenti per sviluppatori

Calcolatore della distanza di Hamming tra interi

La distanza di Hamming tra due interi è il numero di posizioni in cui differiscono le rispettive rappresentazioni binarie.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

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. La capacità ammette interi sicuri non negativi affinché ogni valore sia rappresentato esattamente sia dall’API sia dal browser. 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. 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. 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à?

Ogni richiesta API costa $0.002. 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.

Leggi la documentazione completa del KIT →