ForHosting KIT · Entwickler-Tools

Hamming-Distanz zwischen ganzen Zahlen berechnen

Die Hamming-Distanz zweier Ganzzahlen ist die Anzahl der Bitpositionen, an denen sich ihre Binärdarstellungen unterscheiden.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Dieser Rechner verwendet das Standardverfahren: Er bildet das bitweise XOR beider Werte und zählt anschließend die gesetzten Bits des Ergebnisses. Damit vergleichen Sie Flags, Masken, kompakte Kennungen, codierte Zustände oder Testvektoren, ohne Binärzeichenfolgen manuell auszurichten. Zulässig sind alle nicht negativen sicheren JavaScript-Ganzzahlen einschließlich null; ausgegeben werden das XOR und seine Binärform.

Was die Hamming-Distanz von Ganzzahlen misst

Die Hamming-Distanz wurde für gleich lange Zeichenfolgen definiert, doch Ganzzahlen lassen sich unmittelbar als Bitfolgen verstehen. Jede Zahl wird zur Basis zwei geschrieben; bei einer kürzeren Darstellung werden führende Nullen angenommen. Eine Position erhöht die Distanz um eins, wenn eine Zahl dort ein Nullbit und die andere ein Einsbit besitzt. Übereinstimmende Positionen zählen nicht. Beim Vergleich von Berechtigungsmasken erkennen Sie so die Zahl geänderter Flags, bei kompakten Zuständen die Zahl umgeschalteter binärer Merkmale. Das Ergebnis ist keine arithmetische Differenz, sondern eine Positionszahl. Nahe Zahlen können sich in vielen Bits unterscheiden, weit entfernte nur in einem. Die Beschränkung auf nicht negative sichere Ganzzahlen gewährleistet eine exakte Darstellung im API-Handler und im Browser. Null ist gültig; ihre Distanz zu einer anderen Zahl entspricht der Anzahl gesetzter Bits dieser Zahl.

Wie XOR und Bitzählung das Ergebnis liefern

Exklusives Oder, meist XOR genannt, entspricht genau der Definition eines abweichenden Bits. Es erzeugt null, wenn zwei ausgerichtete Bits gleich sind, und eins, wenn sie verschieden sind. Nach dem XOR der Ganzzahlen müssen daher nur die Einsbits gezählt werden. Die Implementierung nutzt Brian Kernighans Verfahren: In jedem Durchlauf löscht die Verknüpfung des aktuellen Werts mit dem um eins verminderten Wert dessen niedrigstes gesetztes Bit. Die Schleife läuft somit einmal je abweichender Position statt einmal je möglicher Position. Intern kommt BigInt zum Einsatz. Dadurch werden Werte nicht wie bei gewöhnlichen JavaScript-Bitoperatoren unbemerkt auf vorzeichenbehaftete 32-Bit-Ganzzahlen begrenzt. Das zurückgegebene XOR bleibt als normale Zahl sicher, weil es oberhalb der in den geprüften Eingaben vorhandenen Bits kein neues Bit setzen kann. Zusätzlich erleichtert die binäre XOR-Zeichenfolge Prüfung, Fehlersuche und Lehre.

Eingaben wählen und das Ergebnis verstehen

Geben Sie beide Werte in den Feldern a und b an. Jeder Wert muss eine Ganzzahl zwischen null und der größten exakt darstellbaren JavaScript-Ganzzahl sein. Brüche, negative Werte, numerische Zeichenfolgen, Unendlichkeiten und fehlende Felder werden abgewiesen. Die Antwort enthält xor, binary_xor und hamming_distance. Das dezimale xor eignet sich für nachfolgende Maskenoperationen, binary_xor zeigt die abweichenden Positionen und hamming_distance nennt ihre Anzahl. Führende Nullen werden weggelassen, da sie die Distanz nicht verändern. Liegen Ihre Ausgangswerte außerhalb des sicheren Bereichs, bewahren Sie sie außerhalb dieser Fähigkeit auf, statt sie zu runden; Rundung kann niedrige Bits verändern und das Ergebnis verfälschen. Häufig wird die Anzahl mit einem Grenzwert verglichen, ein Code mit einem geänderten Bit akzeptiert oder ein bekannter Testvektor geprüft. Die Operation ist symmetrisch: Der Tausch von a und b ändert nichts, und der Vergleich einer Zahl mit sich selbst ergibt immer null.

Funktions- oder Berechtigungsmasken vergleichen

Zählen Sie geänderte Flags zwischen zwei Ganzzahlmasken und prüfen Sie die kennzeichnende XOR-Maske.

Code für Bitoperationen validieren

Erzeugen Sie eine deterministische Solldistanz samt XOR-Darstellung für Tests, Übungen oder Prüfungen.

Änderungen codierter Zustände messen

Ermitteln Sie abweichende binäre Merkmale kompakter Zustände, ohne Bitwechsel mit Subtraktion zu verwechseln.

Was kostet diese Fähigkeit?

Jede API-Anfrage kostet $0.002. Dieselbe deterministische Berechnung ist auch im Browser möglich.

Warum berechnet XOR die Hamming-Distanz?

XOR setzt genau dort ein Einsbit, wo sich die Eingabebits unterscheiden; deren Anzahl ist die Distanz.

Werden führende Nullen gezählt?

Nein. Sie stimmen mit den impliziten führenden Nullen der anderen nicht negativen Zahl überein.

Kann ich negative Ganzzahlen eingeben?

Nein. Dafür müssten Bitbreite und Vorzeichendarstellung festgelegt werden; zulässig sind nur nicht negative Werte.

Welcher Höchstwert wird akzeptiert?

Jede Eingabe darf eine nicht negative sichere JavaScript-Ganzzahl bis 9,007,199,254,740,991 sein.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

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

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

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

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →