Vaheta endianness
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.