DevToys Web Pro iconDevToys Web Pro部落格
為我們評分:
試用瀏覽器擴充功能:

交換位元組序

8 bytes (2 words)
字組大小

輸入(十六進位)

  • 交換後輸出

  • 技術細節

    位元組序交換工具的運作方式

    工具功能說明

    位元組序交換工具會在可設定的字組大小(2、4 或 8 位元組)內,反轉十六進位輸入的位元組順序。它用於在以十六進位儲存的固定寬度整數之間,於小端序與大端序表示法互相轉換;這在處理二進位檔案格式、網路協定或對位元組序看法不一致的低階除錯工具時很常見。

    常見的開發者使用情境

    逆向工程師會將來自 x86 或 ARM(小端序)以及 PowerPC 或 MIPS(歷史上為大端序)的十六進位轉儲正規化,以便跨架構比較數值。網路工程師會在嵌入封包擷取資料之前,將主機位元組序整數轉為網路位元組序(永遠是大端序)。嵌入式開發者會透過重新對齊位元組,將快閃記憶體中的結構調整為其分析工具所預期的格式,以利除錯。

    資料格式、型別或變體

    輸入接受帶或不帶 `0x` 前綴的十六進位,以及任意空白字元。輸出為了清晰起見,會以空格分隔的小寫十六進位位元組呈現。2、4、8 位元組的字組大小分別對應 16、32、64 位元整數。多個字組會各自獨立交換:在 4 位元組字組大小下,12345678 9ABCDEF0 會變成 78 56 34 12,接著是 F0 DE BC 9A。

    常見陷阱與邊界情況

    輸入必須是完整的位元組數(十六進位數字必須為偶數位),且必須是完整的字組數(可被設定的字組大小〈以位元組計〉整除)。大小不匹配會回傳錯誤,而不是悄悄截斷。網路位元組序永遠是大端序,而 x86 / ARM 使用小端序——在讀寫線路格式(wire-format)整數時請交換位元組。

    何時使用此工具 vs 程式碼

    在閱讀二進位轉儲或除錯時,使用瀏覽器工具進行一次性轉換即可。在程式碼中,建議使用 JavaScript 的 `DataView` 並明確設定 `littleEndian` 旗標、Python 的 `int.from_bytes` 搭配 `byteorder='little'|'big'`、Go 的 `binary.LittleEndian.Uint32`,或 C 的 `ntohl` / `htonl`——這些更能清楚表達意圖,並避免十六進位往返轉換。