ForHosting KIT · Entwickler-Tools

Byte-Reihenfolge tauschen

Aus 0x12345678 wird 0x78563412, wenn die vier Bytes umgekehrt werden, der Schritt zwischen Netzwerkreihenfolge und Little-Endian-Speicher. Wählen Sie 8, 16, 32 oder 64 Bit und sehen Sie den Wert vorher und nachher in Hex, dezimal und Byte für Byte. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Wert
0x12345678
Breite
32
Erhalten Sie
Byte-Anzahl
4
Hex vorher
0x12345678
Hex nachher
0x78563412
Dezimal vorher
305419896

Netzwerkstapel, Dateiformate und eingebettete Firmware sind sich oft uneins, ob das höchstwertige Byte einer Ganzzahl zuerst oder zuletzt kommt. Ein Längenfeld, das auf der Leitung wie 0x12345678 aussieht, liegt in Little-Endian-Speicher als 0x78563412, und der Rückweg ist ebenso häufig, wenn Sie ein Register auslesen und den Netzreihenfolge-Wert brauchen. Dieser Rechner zum Tauschen der Byte-Reihenfolge nimmt eine Ganzzahl und eine Bitbreite von 8, 16, 32 oder 64 entgegen, kehrt die Bytes in diesem Behälter um und liefert den hexadezimalen Wert vor und nach dem Tausch samt passender Dezimalformen und Byte-Arrays.

Was ein Byte-Reihenfolge-Tausch bei 8, 16, 32 und 64 Bit bewirkt

Eine vorzeichenlose Mehrbyte-Ganzzahl ist eine Bytefolge, deren Wertigkeit von der Endianness abhängt. In der üblichen Stellenwertschreibweise bedeutet 0x12345678, dass das höchstwertige Byte 0x12 und das niederwertigste 0x78 ist. Big-Endian-Speicherung legt diese Bytes in genau dieser Reihenfolge ab; Little-Endian kehrt sie um, sodass der Speicher 78 56 34 12 hält.

Das Tauschen der Byte-Reihenfolge ist genau diese Umkehrung in einem Behälter fester Breite: der 32-Bit-Tausch von 0x12345678 ist 0x78563412, der 16-Bit-Tausch von 0x1234 ist 0x3412, und ein 8-Bit-Wert bleibt unverändert, weil ein einzelnes Byte keine Reihenfolge zum Umdrehen hat. Ein 64-Bit-Tausch läuft ebenso über acht Bytes, weshalb 0x0123456789ABCDEF zu 0xEFCDAB8967452301 wird. Die Hardware nennt diese Anweisung bswap; POSIX-Netzhelfer wie htons, htonl, ntohs und ntohl sind dieselbe Umkehrung, wenn die Host-Reihenfolge Little-Endian ist.

Dieser Rechner rät Ihre Plattform nicht und braucht kein From-Endian-Flag: Sie liefern die Ganzzahl so, wie Menschen sie schreiben (oder als 0x-Hex-Zeichenkette), plus eine Breite, und das Ergebnis ist die Ganzzahl, deren Bytes die Umkehrung dieser Breite sind. Zweimal tauschen stellt den Ursprungswert wieder her und macht den Weg für Tests sicher, die Host-Ganzzahlen in Netzreihenfolge und zurück wandeln.

Wann sich das Tauschen der Byte-Reihenfolge lohnt

Protokoll-Reverse-Engineering, Paketbau und CTF-Binäraufgaben brauchen ständig ein verlässliches bswap, damit ein Hex-Dump aus Wireshark und ein Little-Endian-Registerdump ohne manuelles Umdrehen der Bytes vergleichbar sind. Embedded- und Firmware-Teams wandeln Konfigurationskonstanten, CRC-Saaten und Magic Numbers zwischen Netzreihenfolge und der Host-Reihenfolge des MCU, wenn sie Header schreiben oder Flash-Abbilder prüfen. Wer Endianness erklärt, braucht ein lebendes Orakel, das die Ganzzahl festhält und nur die Bytes bei gewählter Breite umkehrt, damit Lernende sehen, warum htons auf 0x1234 auf einem Little-Endian-Host 0x3412 ergibt.

Continuous-Integration-Skripte, die Testvektoren für Serialisierer erzeugen, gewinnen durch eine winzige reine Funktion statt einer vollen Binärwerkzeugkiste für eine einzige Ganzzahl. Fehlgeschlagene Validierung wird nicht abgerechnet. Halten Sie Anfragen klein, pinnen Sie die Hex-Zeichenketten in Tests, und Sie erhalten einen reproduzierbaren Endian-Tausch für Hausaufgaben, Parser und Edge-Worker.

Netzreihenfolge und Host-Reihenfolge

Wandeln Sie eine 16- oder 32-Bit-Ganzzahl zwischen Big-Endian-Leitungsformat und Little-Endian-Hostspeicher um, so wie htons, htonl, ntohs und ntohl.

Firmware-Konstanten und Hex-Dumps

Kehren Sie die Bytes von Magic Numbers, Längen und CRC-Saaten um, wenn ein Hex-Dump und ein C-Ganzzahlliteral über die Endianness uneins sind.

Endianness unterrichten

Zeigen Sie beide hexadezimalen Formen derselben Ganzzahl bei 8, 16, 32 oder 64 Bit, damit Lernende sehen, dass ein Tausch nur die Bytes umkehrt.

Ist das dasselbe wie htons oder bswap?

Ja. Bei 16 Bit entspricht es htons/ntohs auf einem Little-Endian-Host; bei 32 Bit htonl/ntohl und einem 32-Bit-bswap; bei 64 Bit einem 8-Byte-bswap.

Was geschieht, wenn der Wert nicht in die Breite passt?

Der Rechner wrappt und kürzt nicht; wählen Sie einen breiteren Behälter oder senden Sie einen passenden Wert.

Sind negative Zahlen erlaubt?

Ja. Ein negativer Wert wird ins Zweierkomplement der gewählten Breite gewandelt, danach werden die Bytes dieses vorzeichenlosen Musters umgekehrt.

Muss ich angeben, ob mein Wert Big- oder Little-Endian ist?

Nein. Geben Sie die Ganzzahl so ein, wie Sie sie schreiben würden, dezimal oder hexadezimal mit 0x, und wählen Sie die Breite: Das Ergebnis ist die Zahl mit umgekehrten Bytes innerhalb dieser Breite, ohne Annahmen über Ihren Rechner.

Ergibt zweimaliges Tauschen wieder den Ausgangswert?

Ja. Zweimal die Bytes bei gleicher Breite umzukehren liefert genau den Ausgangswert zurück. Deshalb eignet es sich, um Hin- und Rückumwandlungen zwischen Rechner- und Netzwerkreihenfolge zu prüfen.

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/byte-order-swap

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/byte-order-swap \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"0x12345678","width":32}'
{
  "value": "0x12345678",
  "width": 32
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.byte_order_swap",
  "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.

Werte, die nicht in die gewählte Breite passen, fehlende Felder und unzulässige Breiten scheitern mit invalid_input statt still zu wrappen.

Eingabevertrag, Antwortform und Fehlerverhalten

Die Ganzzahl muss in die gewählte Breite passen: nichtnegative Werte dürfen höchstens zwei hoch Breite minus eins sein, und negative Werte werden als Zweierkomplement gelesen und müssen im vorzeichenbehafteten Bereich dieser Breite liegen. Optionale Zahlenfelder werden weggelassen statt auf null gesetzt, wenn ein 64-Bit-Ergebnis nicht exakt wäre. Senden Sie per POST einen JSON-Körper mit zwei Pflichtfeldern: value, die zu tauschende Ganzzahl, und width, die Bitbreite des Behälters. Value darf eine JSON-Zahl, eine Dezimalzeichenkette, eine hexadezimale Zeichenkette mit 0x-Präfix oder wahlweise eine binäre 0b-Zeichenkette sein; die Aliasse number, n, integer und hex werden akzeptiert. Width muss 8, 16, 32 oder 64 sein (Aliasse bits, bit_width und size) und darf als Zahl oder als kurzes Token wie 32bit eintreffen. Überlauf, ein fehlendes Feld, eine leere Zeichenkette, eine Nicht-Ganzzahl oder eine Breite außerhalb der geschlossenen Menge scheitern mit invalid_input unter Nennung des Feldes; solche Fehler werden nicht abgerechnet. Bei Erfolg enthält der Körper width und byte_count; hex_before und hex_after als nullaufgefüllte 0x-Zeichenketten in Großbuchstaben; decimal_before und decimal_after als exakte Dezimalzeichenketten, damit 64-Bit-Ergebnisse keine Ziffern verlieren; bytes_before und bytes_after als MSB-zuerst-Arrays von 0–255; und, wenn jede Größe in den sicheren Ganzzahlbereich von JavaScript passt, decimal_before_number und decimal_after_number. Beispiel: value 0x12345678 und width 32 ergeben hex_before 0x12345678, hex_after 0x78563412 und Bytes 18,52,86,120 umgekehrt zu 120,86,52,18.

Wo eine API zum Tauschen der Byte-Reihenfolge ihren Nutzen hat

Inhaltssites, die auf «Byte-Reihenfolge tauschen Rechner» zielen, erhalten einen kostenlosen Browserpfad, der Byte für Byte mit der bezahlten API auf demselben Modul übereinstimmt. Weil die Umsetzung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Grundpreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz.

Wie tausche ich die Byte-Reihenfolge einer Ganzzahl?

Senden Sie value (Dezimal oder 0x-Hex) und width (8, 16, 32 oder 64). Die API kehrt die Bytes in diesem Behälter um und liefert hex_before, hex_after sowie die passenden Dezimal- und Byte-Arrays.

Was kostet der Rechner zum Tauschen der Byte-Reihenfolge?

Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.

Vollständige KIT-Dokumentation lesen →