DevToys Web Pro iconDevToys Web ProBlog
Értékeljen minket:
Próbáld ki a böngészőbővítményt:

Endianness felcserélése

8 bytes (2 words)
Szóméret

Bemenet (hex)

  • Felcserélt kimenet

  • Technikai részletek

    Hogyan működik a Bájtendianitás felcserélése eszköz

    Mit csinál az eszköz

    A Bájtendianitás felcserélése eszköz megfordítja egy hexadecimális bemenet bájtsorrendjét egy konfigurálható szóhosszon belül (2, 4 vagy 8 bájt). Arra szolgál, hogy a hexában tárolt fix szélességű egész számok little-endian és big-endian ábrázolása között konvertálj, ami gyakori igény bináris fájlformátumok, hálózati protokollok vagy alacsony szintű hibakereső eszközök használatakor, amelyek nem értenek egyet a bájtsorrendben.

    Gyakori fejlesztői felhasználási esetek

    Reverse engineer-ek normalizálják az x86 vagy ARM (little-endian) és a PowerPC vagy MIPS (történetileg big-endian) hex dumpjait, hogy architektúrák között össze tudják hasonlítani az értékeket. Hálózati mérnökök a host bájtsorrendű egész számokat hálózati bájtsorrenddé (mindig big-endian) alakítják, mielőtt csomagrögzítésekbe ágyaznák őket. Beágyazott fejlesztők flashben tárolt struktúrákat hibakeresnek úgy, hogy a bájtokat a saját elemző eszközeik által elvárt formátumhoz igazítják.

    Adatformátumok, típusok vagy változatok

    A bemenet elfogad hexát `0x` előtaggal vagy anélkül, valamint tetszőleges whitespace-t. A kimenet az áttekinthetőség kedvéért szóközzel elválasztott, kisbetűs hex bájtokként jelenik meg. A 2, 4 és 8 bájtos szóhossz rendre 16, 32 és 64 bites egész számoknak felel meg. Több szó esetén a csere egymástól függetlenül történik: 4 bájtos szóhossznál a 12345678 9ABCDEF0 így alakul: 78 56 34 12, majd F0 DE BC 9A.

    Gyakori buktatók és szélső esetek

    A bemenetnek egész számú bájtból kell állnia (páros számú hex számjegy), és egész számú szóból (oszthatónak kell lennie a beállított szóhosszal bájtban). Eltérő méretek esetén a rendszer hibát ad vissza ahelyett, hogy csendben csonkítana. A hálózati bájtsorrend mindig big-endian, míg az x86 / ARM little-endian — cseréld fel a bájtokat, amikor wire-format egész számokat olvasol vagy írsz.

    Mikor érdemes ezt az eszközt használni a kód helyett

    Használd a böngészős eszközt egyszeri konverziókhoz bináris dumpok olvasásakor vagy hibakereséskor. Kódban inkább a `DataView`-t használd explicit `littleEndian` jelzőkkel JavaScriptben, a `byteorder='little'|'big'` opciót Pythonban az `int.from_bytes`-nél, a `binary.LittleEndian.Uint32`-t Go-ban, vagy az `ntohl` / `htonl` függvényeket C-ben — ezek egyértelműbbek a szándékot illetően, és elkerülik a hex körbe-konverziókat.