سؤال

أحاول معرفة كيفية تعيين قيمة اللانهاية السالبة لمتغير عائم أو مزدوج.يبدو أنه بما في ذلك حدود المكتبة القياسية، يمكنني الحصول على تمثيل اللانهاية، وأنا أعلم (بكل تأكيد) أن إضافة علامة ناقص أمام ذلك (-infinity) قد يؤدي إلى القيمة التي أبحث عنها في النقطة العائمة IEEE754 قياسي (حيث قد يؤدي 0x7FFFFFFFF إلى 0xFFFFFFFF)، لكنني لست متأكدًا من ذلك، ناهيك عن المعايير الأخرى التي قد تكون موجودة (إذا كان هناك أي منها).أجد أنه حقًا غير احترافي ويعتمد على التنفيذ.

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

نصائح أخرى

لو std::numeric_limits<double>::is_iec559 يكون true فيجب أن يكون آمنًا للاستخدام -

double negative_infinity = - std::numeric_limits<double>::infinity();

(IEC559 هو المعادل ISO لـ IEEE754)

إذا كان false ثم هناك الكثير من العمل الذي يتعين القيام به لأنني لا أعتقد أن معيار C++ يمنحك أي مساعدة.

أنا لا أعرف ما هو التحويل البرمجي الخاص بك باستخدام، ولكن يمكنك استخدام -std::numeric_limits<double>::infinity() على دول مجلس التعاون الخليجي و MingW انظر Infinity-and-nan .أيضا ركضت التعليمات البرمجية التالية على MSVC وإرجاعها صحيحا:

giveacodicetagpre.

ومع ذلك، فمن المستحسن النظر باستخدام الأدنى في طلبك بدلا من اللانهاية السلبية حيث من المحتمل أن يؤدي إلى حل أكثر محمولة.

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