Byt endianness
Input (hex)
Ombyttet output
Tekniske detaljer
Sådan fungerer værktøjet til at bytte endianness
Hvad værktøjet gør
Værktøjet Byt endianness vender byte-rækkefølgen i et hexadecimalt input inden for en konfigurerbar ordstørrelse (2, 4 eller 8 bytes). Det er beregnet til at konvertere mellem little-endian- og big-endian-repræsentationer af heltal med fast bredde gemt som hex, hvilket ofte er nødvendigt, når man arbejder med binære filformater, netværksprotokoller eller low-level debuggingværktøjer, der er uenige om byte-rækkefølge.
Almindelige anvendelsestilfælde for udviklere
Reverse engineers normaliserer hex dumps fra x86 eller ARM (little-endian) og PowerPC eller MIPS (historisk big-endian), så de kan sammenligne værdier på tværs af arkitekturer. Netværksingeniører konverterer heltal i host-byte-order til netværks-byte-order (altid big-endian), før de indlejrer dem i packet captures. Embedded-udviklere debugger strukturer gemt i flash ved at realigne bytes til det format, deres analyseværktøj forventer.
Dataformater, typer eller varianter
Input accepterer hex med eller uden `0x`-præfiks og vilkårlig whitespace. Output gengives som mellemrumseparerede hex-bytes med små bogstaver for klarhed. Ordstørrelser på 2, 4 og 8 bytes svarer til henholdsvis 16-, 32- og 64-bit heltal. Flere ord byttes uafhængigt: med en ordstørrelse på 4 bytes bliver 12345678 9ABCDEF0 til 78 56 34 12 efterfulgt af F0 DE BC 9A.
Almindelige faldgruber og kanttilfælde
Inputtet skal være et helt antal bytes (lige antal hex-cifre) og et helt antal ord (deleligt med den konfigurerede ordstørrelse i bytes). Uoverensstemmende størrelser giver en fejl i stedet for at blive trunkeret i stilhed. Netværks-byte-order er altid big-endian, mens x86 / ARM bruger little-endian — byt bytes, når du læser eller skriver heltal i wire-format.
Hvornår du skal bruge dette værktøj vs. kode
Brug browserværktøjet til engangskonverteringer, mens du læser binære dumps eller debugger. I kode bør du foretrække `DataView` med eksplicitte `littleEndian`-flag i JavaScript, `byteorder='little'|'big'` i Pythons `int.from_bytes`, `binary.LittleEndian.Uint32` i Go eller `ntohl` / `htonl` i C — de er tydeligere om hensigten og undgår hex round-trips.