سؤال

كيف يمكنني تمثيل مصفوفة بايت (كما هو الحال في 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top