DevToys Web Pro iconDevToys Web ProBlogi
Hinda meid:
Proovi brauserilaiendust:

Vaheta endianness

8 bytes (2 words)
Sõna suurus

Sisend (hex)

  • Vahetatud väljund

  • Tehnilised üksikasjad

    Kuidas baitijärjestuse vahetamise tööriist töötab

    Mida tööriist teeb

    Baitijärjestuse vahetamise tööriist pöörab kuueteistkümnendsisendi baitide järjekorra ümber seadistatava sõnasuuruse piires (2, 4 või 8 baiti). See on mõeldud teisendamiseks little-endian'i ja big-endian'i esituste vahel fikseeritud laiusega täisarvude puhul, mis on sagedane vajadus binaarsete failivormingute, võrguprotokollide või madala taseme silumistööriistadega töötamisel, kui need ei nõustu baitijärjestuses.

    Levinud kasutusjuhtumid arendajatele

    Pöördprojekteerijad normaliseerivad x86 või ARM-i (little-endian) ja PowerPC või MIPS-i (ajalooliselt big-endian) heksadumpe, et saaksid väärtusi arhitektuuride vahel võrrelda. Võrguinsenerid teisendavad hosti baitijärjestuses täisarvud võrgu baitijärjestusse (alati big-endian) enne nende lisamist paketikogumitesse. Manussüsteemide arendajad siluvad välkmälus talletatud struktuure, joondades baidid ümber nende analüüsitööriistade oodatud vormingusse.

    Andmevormingud, tüübid või variandid

    Sisend aktsepteerib heksi `0x` eesliitega või ilma ning suvalist tühikut. Väljund kuvatakse selguse huvides tühikutega eraldatud väiketähtedega heksabaitidena. Sõnasuurused 2, 4 ja 8 baiti vastavad vastavalt 16-, 32- ja 64-bitistele täisarvudele. Mitu sõna vahetatakse sõltumatult: 4-baidise sõnasuuruse korral muutub 12345678 9ABCDEF0 kujule 78 56 34 12 ja seejärel F0 DE BC 9A.

    Levinud komistuskivid ja erijuhud

    Sisend peab olema täisarv baitide kaupa (paarisarv heksakohti) ja täisarv sõnade kaupa (jagatav seadistatud sõnasuurusega baitides). Sobimatud suurused annavad vea, mitte ei kärbi vaikimisi. Võrgu baitijärjestus on alati big-endian, samas kui x86 / ARM kasutavad little-endian'i — vaheta baidid, kui loed või kirjutad juhtmeformaadis täisarve.

    Millal kasutada seda tööriista vs koodi

    Kasuta brauseritööriista ühekordseteks teisendusteks binaardumpide lugemisel või silumisel. Koodis eelista JavaScriptis `DataView`-d selgesõnaliste `littleEndian` lippudega, Pythonis `int.from_bytes`-i parameetriga `byteorder='little'|'big'`, Go-s `binary.LittleEndian.Uint32`-t või C-s `ntohl` / `htonl` — need väljendavad kavatsust selgemalt ja väldivad heksiga edasi-tagasi teisendamist.