DevToys Web Pro iconDevToys Web Proوبلاگ
به ما امتیاز دهید:
افزونه مرورگر را امتحان کنید:

تعویض اندیان

8 bytes (2 words)
اندازه کلمه

ورودی (هگز)

  • خروجی جابه‌جا‌شده

  • جزئیات فنی

    ابزار جابه‌جایی اندینس چگونه کار می‌کند

    این ابزار چه کاری انجام می‌دهد

    ابزار Swap Endianness ترتیب بایت‌های ورودی هگز را در یک اندازه‌ی کلمه‌ی قابل تنظیم (۲، ۴ یا ۸ بایت) معکوس می‌کند. این ابزار برای تبدیل بین نمایش‌های لیتل‌اندین و بیگ‌اندینِ اعداد صحیح با عرض ثابت که به‌صورت هگز ذخیره شده‌اند طراحی شده است؛ نیازی رایج هنگام کار با قالب‌های فایل دودویی، پروتکل‌های شبکه یا ابزارهای دیباگ سطح پایین که درباره‌ی ترتیب بایت اختلاف دارند.

    موارد استفادهٔ رایج برای توسعه‌دهندگان

    مهندسان معکوس‌کار (Reverse engineers) دامپ‌های هگزِ x86 یا ARM (لیتل‌اندین) و PowerPC یا MIPS (از نظر تاریخی بیگ‌اندین) را نرمال‌سازی می‌کنند تا بتوانند مقادیر را بین معماری‌ها مقایسه کنند. مهندسان شبکه پیش از قراردادن اعداد صحیحِ ترتیب‌بایتِ میزبان در کپچرهای بسته، آن‌ها را به ترتیب بایت شبکه (همیشه بیگ‌اندین) تبدیل می‌کنند. توسعه‌دهندگان امبدد ساختارهای ذخیره‌شده در فلش را با هم‌تراز کردن دوباره‌ی بایت‌ها مطابق قالبی که ابزار تحلیلشان انتظار دارد دیباگ می‌کنند.

    قالب‌ها، نوع‌ها یا گونه‌های داده

    ورودی هگز را با یا بدون پیشوند `0x` و با هر مقدار فاصله‌ی سفید می‌پذیرد. خروجی برای وضوح به‌صورت بایت‌های هگزِ حروف کوچک و جداشده با فاصله نمایش داده می‌شود. اندازه‌های کلمه‌ی ۲، ۴ و ۸ بایت به‌ترتیب متناظر با اعداد صحیح ۱۶، ۳۲ و ۶۴ بیتی هستند. چندین کلمه به‌طور مستقل جابه‌جا می‌شوند: با اندازه‌ی کلمه‌ی ۴ بایت، 12345678 9ABCDEF0 به 78 56 34 12 و سپس F0 DE BC 9A تبدیل می‌شود.

    دام‌های رایج و حالت‌های لبه‌ای

    ورودی باید تعداد صحیحی بایت باشد (تعداد زوج رقم‌های هگز) و تعداد صحیحی کلمه (بر اندازه‌ی کلمه‌ی تنظیم‌شده بر حسب بایت بخش‌پذیر باشد). اندازه‌های نامنطبق به‌جای قطع کردن بی‌سروصدا، خطا برمی‌گردانند. ترتیب بایت شبکه همیشه بیگ‌اندین است، در حالی که x86 / ARM از لیتل‌اندین استفاده می‌کنند — هنگام خواندن یا نوشتن اعداد صحیحِ wire-format بایت‌ها را جابه‌جا کنید.

    چه زمانی از این ابزار استفاده کنیم در برابر کُد

    برای تبدیل‌های یک‌باره هنگام خواندن دامپ‌های دودویی یا دیباگ از ابزار مرورگر استفاده کنید. در کد، `DataView` را با فلگ‌های صریح `littleEndian` در جاوااسکریپت، `byteorder='little'|'big'` در `int.from_bytes` پایتون، `binary.LittleEndian.Uint32` در Go یا `ntohl` / `htonl` در C ترجیح دهید — این‌ها نیت را شفاف‌تر بیان می‌کنند و از رفت‌وبرگشت هگز جلوگیری می‌کنند.