سؤال
كيف يمكنني تمثيل مصفوفة بايت (كما هو الحال في Java مع بايت[]) في بايثون؟سأحتاج إلى إرساله عبر السلك مع جيفنت.
byte key[] = {0x13, 0x00, 0x00, 0x00, 0x08, 0x00};
المحلول
في بايثون 3 نستخدم bytes
الكائن، المعروف أيضًا باسم str
في بايثون 2.
# Python 3
key = bytes([0x13, 0x00, 0x00, 0x00, 0x08, 0x00])
# Python 2
key = ''.join(chr(x) for x in [0x13, 0x00, 0x00, 0x00, 0x08, 0x00])
أجد أنه أكثر ملاءمة لاستخدام base64
وحدة...
# Python 3
key = base64.b16decode(b'130000000800')
# Python 2
key = base64.b16decode('130000000800')
يمكنك أيضًا استخدام الحروف ...
# Python 3
key = b'\x13\0\0\0\x08\0'
# Python 2
key = '\x13\0\0\0\x08\0'
نصائح أخرى
ما عليك سوى استخدام رمز ترميز عام (Python 2.6 وما بعده) والذي يمثل تسلسلًا متغيرًا من البايت Genacodicetagpre
تحصل الفهرسة على وحدات البايت الفردية وتعينها Genacodicetagpre
وإذا كنت بحاجة إليه كرمز ترميز عام (أو رمز ترميز عام في Python 3) ، فالأمر بسيط مثل
Genacodicetagpreبديل له أيضًا فائدة إضافية تتمثل في سهولة تسجيل مخرجاته: Genacodicetagpre يتيح لك
إجراء استبدالات سهلة مثل: Genacodicetagpre
ربما تكون إجابة ديتريش هي الشيء الذي تحتاجه لما تصفه ، إرسال البايت ، لكن التناظرية الأقرب إلى الشفرة التي قدمتها على سبيل المثال ستستخدم نوع رمز الترقيم العام. Genacodicetagpre