Avatar ·

كيفية تمثيل float كـ integer دون فقدان المعلومات؟

📁 بايثون, مساعدة, ذكاء اصطناعي

هناك مهمة تحويل قيم float إلى قيم من نوع int (قيمة float واحدة إلى قيمة int واحدة) دون فقدان المعلومات، أي بحيث يمكن إجراء التحويل العكسي لاحقًا. كيف يمكن تحقيق ذلك؟

مهم

يجب أن يحافظ هذا التحويل على الترتيب والمجموع،
أي لأي a, b: float يجب أن يتحقق:

to_float(to_int(a) + to_int(b)) == a + bto_int(a) < to_int(b) عند a < b وهكذا.

وجدت في SO باللغة الإنجليزية تمثيلًا bitwise لبنية قيم float، لكنني لا أعرف كيف يمكن تطبيقه لمهمتي.

ملاحظة: NaN و inf في مهمتي لا تحتاج إلى تحويل.


محاولات الحل

في البداية خطرت لي فكرة التسلسل باستخدام pickle.dumps ثم الحصول على int من هذه البايتات، لكن هذا ليس عمليًا على الإطلاق.