DevToys Web Pro iconDevToys Web Proבלוג
דרגו אותנו:
נסו את תוסף הדפדפן:

החלפת סדר בתים

8 bytes (2 words)
גודל מילה

קלט (הקס)

  • פלט לאחר החלפה

  • פרטים טכניים

    איך כלי החלפת סדר הבתים (Endianness) עובד

    מה הכלי עושה

    הכלי Swap Endianness הופך את סדר הבתים של קלט הקסדצימלי בתוך גודל מילה ניתן להגדרה (2, 4 או 8 בתים). הוא מיועד להמרה בין ייצוגי little-endian ו-big-endian של מספרים שלמים ברוחב קבוע המאוחסנים כהקס, צורך נפוץ בעבודה עם פורמטים של קבצים בינאריים, פרוטוקולי רשת, או כלי דיבוג ברמה נמוכה שאינם מסכימים על סדר הבתים.

    מקרי שימוש נפוצים למפתחים

    מהנדסי Reverse Engineering מנרמלים דמפי הקס מ-x86 או ARM ‏(little-endian) ומ-PowerPC או MIPS ‏(היסטורית big-endian) כדי שיוכלו להשוות ערכים בין ארכיטקטורות. מהנדסי רשת ממירים מספרים שלמים בסדר הבתים של המארח לסדר בתים של רשת (תמיד big-endian) לפני שהם מטמיעים אותם בלכידות מנות. מפתחי Embedded מדבגים מבנים המאוחסנים בפלאש על ידי יישור מחדש של בתים לפורמט שמצופה על ידי כלי הניתוח שלהם.

    פורמטי נתונים, טיפוסים או וריאנטים

    הקלט מקבל הקס עם או בלי הקידומת `0x` ורווחים מכל סוג. הפלט מוצג כבתים בהקס באותיות קטנות, מופרדים ברווחים, לשם בהירות. גדלי מילה של 2, 4 ו-8 בתים תואמים למספרים שלמים של 16, 32 ו-64 ביט בהתאמה. מספר מילים מוחלפות באופן עצמאי: עם גודל מילה של 4 בתים, 12345678 9ABCDEF0 הופך ל-78 56 34 12 ולאחריו F0 DE BC 9A.

    מלכודות נפוצות ומקרי קצה

    הקלט חייב להיות מספר שלם של בתים (מספר זוגי של ספרות הקס) ומספר שלם של מילים (מתחלק בגודל המילה המוגדר בבתים). גדלים שאינם תואמים מחזירים שגיאה במקום לקצץ בשקט. סדר בתים של רשת הוא תמיד big-endian, בעוד x86 / ARM משתמשים ב-little-endian — החליפו את הבתים בעת קריאה או כתיבה של מספרים שלמים בפורמט על-החוט.

    מתי להשתמש בכלי הזה לעומת קוד

    השתמשו בכלי הדפדפן להמרות חד-פעמיות בזמן קריאת דמפים בינאריים או דיבוג. בקוד, העדיפו `DataView` עם דגלי `littleEndian` מפורשים ב-JavaScript, ‏`byteorder='little'|'big'` ב-`int.from_bytes` של Python, ‏`binary.LittleEndian.Uint32` ב-Go, או `ntohl` / `htonl` ב-C — אלה ברורים יותר לגבי הכוונה ומונעים סבבי הקס.