التابع int.to_bytes()‎ في بايثون

من موسوعة حسوب
< Python‏ | int
مراجعة 11:58، 10 يونيو 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - ':الدالة' ب':التابع')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يعيد التابع to_bytes()‎ مصفوفة من البايتات تمثّل عددًا صحيحًا.

البنية العامة

x.to_bytes()

المعاملات

length

عدد البايتات التي يستخدمها التابع لتمثيل العدد الصحيح. في حال كان العدد الصحيح غير قابل للتمثيل باستخدام العدد البايتات المحدّد في هذا الوسيط فستطلق اللغة الاستثناء OverflowError.

byteorder

يحدد هذا الوسيط ترتيب البايتات المستخدمة لتمثيل العدد الصحيح. يأخذ هذا المعامل القيمة "big" ويصبح البايت الأكثر أهمّية في بداية مصفوفة البايتات، ويأخذ القيمة "little" فيصبح البايت الأكثر أهمّية في نهاية مصفوفة البايتات. وللحصول على الترتيب المعتمد في النظام المضيف يمكن استخدام sys.byteorder كقيمة لهذا الوسيط.

signed

يحدّد هذا الوسيط ما إذا سيتم استخدام المتمم الثنائي (two’s complement) لتمثيل العدد الصحيح. إن أخذ هذا الوسيط القيمة False ومُرّر إلى الدالة عدد صحيح سالب، تطلق اللغة الاستثناء OverflowError. القيمة الافتراضية لهذا الوسيط هي False.

ملاحظة: هذا التابع جديدٌ في الإصدار 3.2.

أمثلة

يوضح المثال التالي النتائج المعادة من استخدام التابع to_bytes()‎ مع معاملات مختلفة:

>>> (1024).to_bytes(2, byteorder='big')
b'\x04\x00'
>>> (1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
>>> (-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
>>> x = 1000
>>> x.to_bytes((x.bit_length() + 7) // 8, byteorder='little')
b'\xe8\x03'

انظر أيضًا

مصادر