Mainīt baitu secību
Ievade (hex)
Apmainītā izvade
Tehniskā informācija
Kā darbojas baitu secības maiņas rīks
Ko rīks dara
Rīks Baitu secības maiņa apgriež heksadecimālās ievades baitu kārtību konfigurējamā vārda izmērā (2, 4 vai 8 baiti). Tas ir paredzēts konvertēšanai starp little-endian un big-endian fiksēta platuma veselu skaitļu attēlojumiem, kas glabāti kā hex, kas bieži nepieciešams, strādājot ar bināro failu formātiem, tīkla protokoliem vai zema līmeņa atkļūdošanas rīkiem, kuriem atšķiras baitu secība.
Biežākie izstrādātāju lietošanas gadījumi
Reversās inženierijas speciālisti normalizē hex izdrukas no x86 vai ARM (little-endian) un PowerPC vai MIPS (vēsturiski big-endian), lai varētu salīdzināt vērtības starp arhitektūrām. Tīkla inženieri pārveido hosta baitu kārtības veselus skaitļus uz tīkla baitu kārtību (vienmēr big-endian) pirms to iegulda pakešu tvērumos. Iegulto sistēmu izstrādātāji atkļūdo struktūras, kas glabātas zibatmiņā, pārkārtojot baitus atbilstoši formātam, ko sagaida viņu analīzes rīki.
Datu formāti, tipi vai varianti
Ievade pieņem hex ar vai bez `0x` prefiksa un patvaļīgām atstarpēm. Izvade skaidrības labad tiek attēlota kā ar atstarpēm atdalīti mazie burti heksadecimālie baiti. Vārda izmēri 2, 4 un 8 baiti atbilst attiecīgi 16, 32 un 64 bitu veseliem skaitļiem. Vairāki vārdi tiek apmainīti neatkarīgi: ar 4 baitu vārda izmēru 12345678 9ABCDEF0 kļūst par 78 56 34 12 un pēc tam F0 DE BC 9A.
Biežākās kļūdas un robežgadījumi
Ievadei jābūt veselam baitu skaitam (pāra skaits heksadecimālo ciparu) un veselam vārdu skaitam (dalāmam ar konfigurēto vārda izmēru baitos). Neatbilstoši izmēri atgriež kļūdu, nevis klusi apcērp. Tīkla baitu kārtība vienmēr ir big-endian, savukārt x86 / ARM izmanto little-endian — apmainiet baitus, lasot vai rakstot wire-format veselus skaitļus.
Kad izmantot šo rīku, nevis kodu
Izmantojiet pārlūka rīku vienreizējām konversijām, lasot binārās izdrukas vai atkļūdojot. Kodā dodiet priekšroku `DataView` ar skaidri norādītiem `littleEndian` karodziņiem JavaScript, `byteorder='little'|'big'` Python `int.from_bytes`, `binary.LittleEndian.Uint32` Go vai `ntohl` / `htonl` C — tie skaidrāk parāda nolūku un izvairās no hex apļceļiem.