Zameniť endianness
Vstup (hex)
Výstup po prehodení
Technické podrobnosti
Ako funguje nástroj na prehodenie endianness
Čo nástroj robí
Nástroj Swap Endianness obráti poradie bajtov hexadecimálneho vstupu v rámci nastaviteľnej veľkosti slova (2, 4 alebo 8 bajtov). Je určený na konverziu medzi little-endian a big-endian reprezentáciami celočíselných hodnôt s pevnou šírkou uložených ako hex, čo je častá potreba pri práci s binárnymi formátmi súborov, sieťovými protokolmi alebo nízkoúrovňovými debugovacími nástrojmi, ktoré sa nezhodujú v poradí bajtov.
Bežné prípady použitia pre vývojárov
Reverse inžinieri normalizujú hex dumpy z x86 alebo ARM (little-endian) a PowerPC alebo MIPS (historicky big-endian), aby mohli porovnávať hodnoty naprieč architektúrami. Sieťoví inžinieri prevádzajú celé čísla v host byte order na network byte order (vždy big-endian) pred ich vložením do zachytených paketov. Embedded vývojári ladia štruktúry uložené vo flash pamäti preusporiadaním bajtov do formátu, ktorý očakávajú ich analytické nástroje.
Dátové formáty, typy alebo varianty
Vstup akceptuje hex s prefixom `0x` aj bez neho a ľubovoľné biele znaky. Výstup sa pre prehľadnosť zobrazuje ako bajty v malých písmenách oddelené medzerami. Veľkosti slov 2, 4 a 8 bajtov zodpovedajú 16-, 32- a 64-bitovým celým číslam. Viaceré slová sa prehadzujú nezávisle: pri veľkosti slova 4 bajty sa 12345678 9ABCDEF0 zmení na 78 56 34 12 a potom F0 DE BC 9A.
Bežné úskalia a okrajové prípady
Vstup musí obsahovať celý počet bajtov (párny počet hex číslic) a celý počet slov (deliteľný nastavenou veľkosťou slova v bajtoch). Nezhodné veľkosti vrátia chybu namiesto tichého skrátenia. Network byte order je vždy big-endian, zatiaľ čo x86 / ARM používajú little-endian — prehoďte bajty pri čítaní alebo zápise wire-format celých čísel.
Kedy použiť tento nástroj vs. kód
Použite nástroj v prehliadači na jednorazové konverzie pri čítaní binárnych dumpov alebo ladení. V kóde uprednostnite `DataView` s explicitnými príznakmi `littleEndian` v JavaScripte, `byteorder='little'|'big'` v `int.from_bytes` v Pythone, `binary.LittleEndian.Uint32` v Go alebo `ntohl` / `htonl` v C — sú jasnejšie v zámere a vyhýbajú sa hex round-tripom.