تقنية

byteswap في بايثون: هل يعكس ترتيب عناصر array؟

تبادل بايتي كل عنصر مع بقاء ترتيب العنصرين
داخل كل عنصر. [1] [2]

بايتا العنصر يختلفان عن موضعه. [1] [2]

الخلاصة السريعة

byteswap() يعكس بايتات كل عنصر؛ لا يعكس ترتيب العناصر. [1] [2]

  • بدأنا بالقيمتين 0x1234 و0x5678. [1] [2]
  • بعد byteswap تصبحان 0x3412 و0x7856. [1] [2]
  • تحكم reverse يعطي 0x5678 ثم 0x1234. [1] [2]
  • المثال H؛ تحققنا أن itemsize يساوي بايتين. [1] [2]
  • تطبيق byteswap مرتين يعيد البداية؛ 3.12.14 دون ملفات. [1] [2]

المثال

from array import array
a=array("H",[0x1234,0x5678])
assert a.itemsize==2
a.byteswap()
print([hex(x) for x in a])
b=array("H",[0x1234,0x5678])
b.reverse()
print([hex(x) for x in b])

[1] [2]

داخل العنصر وبين العناصر

المصدر يبدل بايتي كل عنصر بحجم اثنين. أما reverse فيبادل عناصر كاملة؛ تختلف النتيجتان مع تطابق المدخلين. [1] [2]

تبادل موضعي العنصرين دون تبديل بايتيهما
بين العناصر. [1] [2]

النطاق

العمليتان تعدلان مصفوفتين مستقلتين. تطبيق byteswap مرتين يعيد البداية؛ النتائج تخص شرط البايتين. [1] [2]

المراجع

  1. Python 3.12: array byteswap/reverse
  2. CPython 3.12.14: array byte and item reversal
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.