Zamień kolejność bajtów
Wejście (hex)
Wyjście po zamianie
Szczegóły techniczne
Jak działa narzędzie Zamiana endianness
Co robi narzędzie
Narzędzie Zamiana endianness odwraca kolejność bajtów w szesnastkowym wejściu w ramach konfigurowalnego rozmiaru słowa (2, 4 lub 8 bajtów). Służy do konwersji między reprezentacjami little-endian i big-endian liczb całkowitych o stałej szerokości zapisanych jako hex, co jest częstą potrzebą podczas pracy z binarnymi formatami plików, protokołami sieciowymi lub niskopoziomowymi narzędziami debugowania, które nie zgadzają się co do kolejności bajtów.
Typowe zastosowania dla programistów
Inżynierowie reverse engineeringu normalizują zrzuty hex z x86 lub ARM (little-endian) oraz PowerPC lub MIPS (historycznie big-endian), aby móc porównywać wartości między architekturami. Inżynierowie sieciowi konwertują liczby całkowite w kolejności bajtów hosta do kolejności bajtów sieci (zawsze big-endian) przed umieszczeniem ich w przechwyceniach pakietów. Programiści systemów wbudowanych debugują struktury zapisane w pamięci flash, wyrównując bajty do formatu oczekiwanego przez ich narzędzia analityczne.
Formaty danych, typy lub warianty
Wejście akceptuje zapis hex z prefiksem `0x` lub bez oraz dowolne białe znaki. Wyjście jest renderowane jako bajty hex małymi literami, rozdzielone spacjami, dla czytelności. Rozmiary słowa 2, 4 i 8 bajtów odpowiadają odpowiednio liczbom całkowitym 16-, 32- i 64-bitowym. Wiele słów jest zamienianych niezależnie: przy rozmiarze słowa 4 bajty, 12345678 9ABCDEF0 staje się 78 56 34 12, a następnie F0 DE BC 9A.
Typowe pułapki i przypadki brzegowe
Wejście musi stanowić całkowitą liczbę bajtów (parzysta liczba cyfr szesnastkowych) oraz całkowitą liczbę słów (podzielną przez skonfigurowany rozmiar słowa w bajtach). Niezgodne rozmiary zwracają błąd zamiast po cichu ucinać dane. Kolejność bajtów w sieci jest zawsze big-endian, podczas gdy x86 / ARM używają little-endian — zamieniaj bajty podczas odczytu lub zapisu liczb całkowitych w formacie „na drucie”.
Kiedy używać tego narzędzia zamiast kodu
Użyj narzędzia w przeglądarce do jednorazowych konwersji podczas czytania zrzutów binarnych lub debugowania. W kodzie preferuj `DataView` z jawnymi flagami `littleEndian` w JavaScripcie, `byteorder='little'|'big'` w `int.from_bytes` Pythona, `binary.LittleEndian.Uint32` w Go lub `ntohl` / `htonl` w C — są one czytelniejsze co do intencji i pozwalają uniknąć konwersji przez hex.