ForHosting KIT · Outils pour développeurs

Calculateur de distance de Hamming entre entiers

La distance de Hamming entre deux entiers indique le nombre de positions où leurs représentations binaires diffèrent.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Ce calculateur applique la méthode standard : il effectue le XOR bit à bit des deux valeurs, puis compte les bits à un du résultat. Vous pouvez ainsi comparer des indicateurs, des masques, des identifiants compacts, des états codés ou des vecteurs de test sans aligner manuellement des chaînes binaires. Tous les entiers sûrs JavaScript positifs ou nuls sont acceptés, et le résultat fournit le XOR sous forme décimale et binaire.

Ce que mesure la distance de Hamming des entiers

La distance de Hamming a d’abord été définie pour des chaînes de même longueur, mais les entiers s’interprètent naturellement comme des chaînes de bits. Chaque entier est écrit en base deux et des zéros initiaux sont supposés lorsque sa représentation est plus courte. Une position ajoute un à la distance si un entier contient un bit zéro et l’autre un bit un ; les positions identiques ne comptent pas. La comparaison de masques d’autorisations révèle ainsi le nombre d’indicateurs modifiés, tandis que celle d’états compacts dénombre les caractéristiques binaires basculées. Le résultat compte des positions et ne représente pas l’écart arithmétique. Deux valeurs proches peuvent différer sur de nombreux bits, et deux valeurs éloignées sur un seul. Les entiers sûrs positifs ou nuls garantissent une représentation exacte dans l’API comme dans le navigateur. Zéro est valide, et sa distance avec un entier correspond au nombre de bits à un de cet entier.

Comment XOR et le comptage des bits donnent la réponse

Le OU exclusif, généralement noté XOR, convient exactement à cette mesure : il produit zéro lorsque deux bits alignés sont identiques et un lorsqu’ils diffèrent. Après le XOR des deux entiers, il suffit donc de compter les bits à un. L’implémentation emploie la méthode de Brian Kernighan. À chaque itération, la soustraction de un puis un AND bit à bit effacent le bit à un de poids le plus faible. La boucle s’exécute ainsi une fois par position différente, et non pour chaque position possible. Le calcul interne utilise BigInt afin d’éviter que les opérateurs binaires ordinaires de JavaScript ne réduisent silencieusement les valeurs à des entiers signés de 32 bits. Le XOR reste représentable comme nombre ordinaire, puisqu’il ne peut créer de bit supérieur à ceux des entrées sûres validées. Sa chaîne binaire est également fournie afin de faciliter les contrôles, le débogage et l’apprentissage.

Choisir les entrées et lire le résultat

Renseignez les deux valeurs dans les champs a et b. Chacune doit être un entier compris entre zéro et le plus grand entier exactement représentable en JavaScript ; les fractions, valeurs négatives, chaînes numériques, infinis et champs absents sont refusés. La réponse contient xor, binary_xor et hamming_distance. Le XOR décimal sert aux opérations de masque ultérieures, binary_xor indique précisément les positions différentes et hamming_distance en donne le nombre. Les zéros initiaux sont omis, car ils ne changent jamais la distance. Si vos valeurs dépassent la plage sûre, conservez-les hors de cette capacité plutôt que de les arrondir : l’arrondi peut modifier les bits faibles et fausser la mesure. Une intégration peut comparer le total à un seuil, accepter un code présentant un seul bit modifié ou vérifier des vecteurs connus. L’opération est symétrique : permuter a et b ne change rien, et comparer une valeur à elle-même produit toujours zéro.

Comparer des masques de fonctions ou d’autorisations

Comptez les indicateurs modifiés entre deux masques entiers et examinez le masque XOR qui les identifie.

Valider du code de manipulation binaire

Produisez une distance attendue déterministe et une représentation XOR pour des tests ou des exercices.

Mesurer des changements d’état codé

Résumez les caractéristiques binaires différentes entre deux états compacts sans les confondre avec une soustraction.

Quel est le tarif de cette capacité ?

Chaque requête API coûte $0.002. Le même calcul déterministe peut aussi s’exécuter dans le navigateur.

Pourquoi XOR permet-il de calculer la distance de Hamming ?

XOR place un bit à un exactement là où les bits d’entrée diffèrent ; leur comptage donne directement la distance.

Les zéros initiaux sont-ils comptés ?

Non. Ils correspondent aux zéros initiaux implicites de l’autre entier positif ou nul et n’ajoutent aucune distance.

Puis-je fournir des entiers négatifs ?

Non. Ils exigent une largeur et une représentation signée choisies ; seuls les entiers positifs ou nuls sont admis.

Quelle est la valeur maximale acceptée ?

Chaque entrée peut être un entier sûr JavaScript positif ou nul, jusqu’à 9,007,199,254,740,991.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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 est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →