This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28386D:下溢/上溢 FPU32 返回值

Guru**** 2875980 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1620408/tms320f28386d-underflow-overflow-fpu32-return-values

部件号: TMS320F28386D

您好:

前一段时间、我问了下溢情况下的返回值是多少、我得到了答案、“ 应该 “是 0。

我需要确保它确实是 0、所以更确切地说、“ Will “比“ 应该 “、请您确认一下吗?

另外、您能否告诉我、溢出情况下的返回值是否是可能的最大浮点值?

谢谢您、

此致

Cl é ment

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Clement:

    对延迟的答复表示歉意。

    结果:

    --测试溢出--
    【成功】检测到溢出:结果为无穷大。
    ——测试下溢——
    [SUCCESS]检测到下溢:结果被清除为零。

    使用的测试用例:

    #include
    #include
    #include

    void test_overflow(){
    易失性浮点大值= FLT_MAX;
    易失性浮点结果;

    printf(“-----测试溢出--\n“);
    //printf(“初始值:%f\n“,大);

    //强制溢出
    结果=大* 10.0f;

    //printf(“result:%e\n“、result);

    if (isinf (result)){
    printf(“[成功【成功】检测到溢出:结果为无穷大。\n“);
    }其他{
    printf(“[失败【失败】未检测到溢出。\n“);
    }
    }

    void test_unflow(){
    易失性浮点小值= FLT_MIN;
    易失性浮点结果;

    printf(“---测试下溢--\n“);
    //printf(“初始值:%e\n“,小);

    //通过除以大量数来强制下溢
    结果=小/ 1e20f;

    //printf(“result:%e\n“、result);


    if (result == 0.0f){
    printf(“[SUCCESS] Detected Underflow(检测到下溢):结果刷新为零。\n“);
    } else if (result < FLT_MIN && result > 0.0f){
    printf(“[SUCCESS]检测到下溢:结果异常。\n“);
    }其他{
    printf(“[失败【失败】未检测到下溢。\n“);
    }
    }