سؤال

وأنا في حاجة لتحويل سلاسل Unicode في بيثون إلى أنواع أخرى مثل غير موقعة وقعت كثافة 8 بت، غير موقعة وقعت كثافة العمليات 16 بت، غير موقعة وقعت كثافة العمليات 32 بت، غير موقعة وقعت كثافة العمليات 64 بت، مزدوجة، تطفو، سلسلة، غير موقعة وقعت 8 بت، غير موقعة وقعت 16 بت غير موقعة وقعت 32 بت غير موقعة وقعت 64 بت.

وأنا بحاجة للمساعدة من الناس ش.

هل كانت مفيدة؟

المحلول

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

struct لحزمة صحيح في عرض ثابت:

res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t

res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t

res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t

res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t

res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double

وstruct تنتج سلسلة بايت تحتوي على رقم في ثنائي.

وتحرير: من التعليقات التي يبدو وكأنه كنت ترغب فقط في تحويل السلسلة (من الأرقام العشرية) إلى عدد صحيح. مجرد استخدام int() لذلك، ومع ذلك أنك لن تحصل على كل تجاوز معقدة / دلالات تجاوز الحد الأدنى من أنواع محددة. لا يمكنك نسخ ذلك في بيثون، على الأقل ليس من دون كتابة مجموعة كبيرة من التعليمات البرمجية.

واعتقد انه اذا كنت تريد أي مساعدة أكثر عليك أن تكون أكثر دقة حول ما تريد تحقيقه.

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