DevToys Web Pro iconDevToys Web ProBlog
Oceń nas:
Wypróbuj rozszerzenie przeglądarki:

Zamień kolejność bajtów

8 bytes (2 words)
Rozmiar słowa

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.