Zameni endianness
Ulaz (heks)
Izlaz sa zamenjenim bajtovima
Tehnički detalji
Kako radi alat za zamenu endijanskosti
Šta alat radi
Alat za zamenu endijanskosti obrće redosled bajtova heksadecimalnog ulaza unutar podesive veličine reči (2, 4 ili 8 bajtova). Namenjen je konverziji između little-endian i big-endian prikaza celih brojeva fiksne širine zapisanih kao heks, što je česta potreba pri radu sa binarnim formatima fajlova, mrežnim protokolima ili alatima za niskonivojsko debagovanje koji se ne slažu oko redosleda bajtova.
Uobičajeni slučajevi upotrebe za programere
Reverse inženjeri normalizuju heks dump-ove sa x86 ili ARM (little-endian) i PowerPC ili MIPS (istorijski big-endian) kako bi mogli da porede vrednosti između arhitektura. Mrežni inženjeri konvertuju cele brojeve iz host-byte-order u network byte order (uvek big-endian) pre nego što ih ugrade u snimke paketa. Embedded programeri debaguju strukture sačuvane u flešu tako što ponovo poravnavaju bajtove na format koji očekuju njihovi alati za analizu.
Formati podataka, tipovi ili varijante
Ulaz prihvata heks sa ili bez prefiksa `0x` i proizvoljne razmake. Izlaz se prikazuje kao heks bajtovi malim slovima, razdvojeni razmacima, radi jasnoće. Veličine reči od 2, 4 i 8 bajtova odgovaraju 16-, 32- i 64-bitnim celim brojevima. Više reči se menja nezavisno: sa veličinom reči od 4 bajta, 12345678 9ABCDEF0 postaje 78 56 34 12, a zatim F0 DE BC 9A.
Uobičajene greške i rubni slučajevi
Ulaz mora da bude ceo broj bajtova (paran broj heks cifara) i ceo broj reči (deljivo sa podešenom veličinom reči u bajtovima). Neusklađene veličine vraćaju grešku umesto da se tiho skrate. Network byte order je uvek big-endian, dok x86 / ARM koriste little-endian — zamenite bajtove pri čitanju ili pisanju celih brojeva u wire-format-u.
Kada koristiti ovaj alat umesto koda
Koristite alat u pregledaču za jednokratne konverzije dok čitate binarne dump-ove ili debagujete. U kodu, dajte prednost `DataView`-u sa eksplicitnim `littleEndian` zastavicama u JavaScript-u, `byteorder='little'|'big'` u Python-ovom `int.from_bytes`, `binary.LittleEndian.Uint32` u Go-u ili `ntohl` / `htonl` u C-u — to jasnije pokazuje nameru i izbegava heks round-trip.