DevToys Web Pro iconDevToys Web ProBlog
Ocenite nas:
Preizkusite razširitev brskalnika:

Zamenjaj endianness

8 bytes (2 words)
Velikost besede

Vhod (hex)

  • Zamenjan izhod

  • Tehnične podrobnosti

    Kako deluje orodje za zamenjavo endianness

    Kaj orodje počne

    Orodje za zamenjavo endianness obrne vrstni red bajtov v šestnajstiškem vhodu znotraj nastavljive velikosti besede (2, 4 ali 8 bajtov). Namenjeno je pretvorbi med little-endian in big-endian predstavitvami celoštevilskih vrednosti fiksne širine, shranjenih kot hex, kar je pogosta potreba pri delu z binarnimi formati datotek, omrežnimi protokoli ali nizkonivojskimi orodji za razhroščevanje, ki se ne strinjajo glede vrstnega reda bajtov.

    Pogosti primeri uporabe za razvijalce

    Reverse inženirji normalizirajo hex izpise iz x86 ali ARM (little-endian) ter PowerPC ali MIPS (zgodovinsko big-endian), da lahko primerjajo vrednosti med arhitekturami. Omrežni inženirji pretvarjajo celoštevilske vrednosti iz vrstnega reda bajtov gostitelja v omrežni vrstni red bajtov (vedno big-endian), preden jih vstavijo v zajeme paketov. Razvijalci vgrajenih sistemov razhroščujejo strukture, shranjene v flashu, tako da ponovno poravnajo bajte na format, ki ga pričakuje njihovo orodje za analizo.

    Podatkovni formati, tipi ali različice

    Vhod sprejme hex z ali brez predpone `0x` in poljubne presledke. Izhod je zaradi jasnosti izpisan kot z presledki ločeni šestnajstiški bajti v malih črkah. Velikosti besed 2, 4 in 8 bajtov ustrezajo 16-, 32- in 64-bitnim celim številom. Več besed se zamenja neodvisno: pri velikosti besede 4 bajte se 12345678 9ABCDEF0 spremeni v 78 56 34 12, nato pa F0 DE BC 9A.

    Pogoste pasti in robni primeri

    Vhod mora vsebovati celo število bajtov (sodo število šestnajstiških števk) in celo število besed (deljivo z nastavljeno velikostjo besede v bajtih). Neujemajoče se velikosti vrnejo napako, namesto da bi tiho odrezale podatke. Omrežni vrstni red bajtov je vedno big-endian, medtem ko x86 / ARM uporabljata little-endian — zamenjajte bajte pri branju ali pisanju celoštevilskih vrednosti v wire-formatu.

    Kdaj uporabiti to orodje namesto kode

    Uporabite orodje v brskalniku za enkratne pretvorbe med branjem binarnih izpisov ali razhroščevanjem. V kodi raje uporabite `DataView` z eksplicitnimi zastavicami `littleEndian` v JavaScriptu, `byteorder='little'|'big'` v Pythonovem `int.from_bytes`, `binary.LittleEndian.Uint32` v Go ali `ntohl` / `htonl` v C — to je jasnejše glede namena in se izogne pretvorbam prek hex.