تقنية

from_bytes في بايثون: هل signed تغيّر تفسير المدخل؟

المدخل 255 ثم 249 يعطي 65529 دون إشارة و-7 بتفسير موقّع.
مدخل وتفسيران.

int.from_bytes تفسر المدخل عددًا؛ signed=True تستخدم المتمم الثنائي، والافتراضي signed=False. [1]

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

نعم؛ المدخل نفسه قد يعطي عددًا مختلفًا. [1]

  • int.from_bytes تفسر المدخل عددًا؛ signed=True تستخدم المتمم الثنائي، والافتراضي signed=False. [1]
  • نثبت الترتيب "big" في الاستدعاءين، ونغيّر signed فقط. [1]
  • مثال مؤلف على CPython 3.12.14: d=[255,249]؛ u=int.from_bytes(d,"big") تعطي 65529. [1]
  • مع v=int.from_bytes(d,"big",signed=True)، تكون النتيجة -7؛ الحساب 65529-65536=-7. [1]
  • تبقى d=[255,249]؛ اختلاف التفسير لا يعني تغيير المدخل. [1]

وسيط الإشارة

int.from_bytes تفسر المدخل عددًا؛ signed=True تستخدم المتمم الثنائي، والافتراضي signed=False. [1]

ترتيب ثابت

نثبت الترتيب "big" في الاستدعاءين، ونغيّر signed فقط. [1]

التفسير الافتراضي

مثال مؤلف على CPython 3.12.14: d=[255,249]؛ u=int.from_bytes(d,"big") تعطي 65529. [1]

u -> 65529 [1]

الحساب غير الموقّع 255×256+249=65529؛ الموقّع يطرح 65536 فيعطي -7.
حساب مستقل.

التفسير الموقّع

مع v=int.from_bytes(d,"big",signed=True)، تكون النتيجة -7؛ الحساب 65529-65536=-7. [1]

v -> -7 [1]

تبقى d=[255,249]؛ اختلاف التفسير لا يعني تغيير المدخل. [1]

المراجع

  1. Python — int.from_bytes

للتوسع: لغات البرمجة.

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