4

私はこれについて長い間検索してきましたが、この質問が何を意味するのか理解できません。

質問:

Write a program in any language to determine how your computer handles graceful 
underflow.

オーバーフロー条件は次のようなものであることを理解しています: 整数がx の最大値を格納できる場合、 x+1の値を割り当てると、値x+1は整数が保持できる最小値に変換されます。アンダーフローはその逆であることを理解しています。

高性能科学計算/線形代数の観点から見てどうですか?

このリンクを読みましたが、上記と同じアンダーフロー/オーバーフローだと思います。グレースフル アンダーフローとは何の略ですか?

4

1 に答える 1

2

さて、@StoneBird がこのリンクに投稿したリンクが特に役に立ちました。ここで、同じことを示すプログラムをcで作成しました。

#include <stdio.h>
#include <math.h>

int main(int argc, char **argv)
{
    unsigned int s,e,m;
    unsigned int* ptr;
    float a,temp=0;
    a=1;
    float min=pow(2,-129);
    while(a>min){
        temp=a;
        a=a/2;
    }
    printf("Value=%e\n",temp);
    ptr=(unsigned int*)&temp;
    s = *ptr >> 31;
    e = *ptr & 0x7f800000;
    e >>= 23;
    m = *ptr & 0x07fffff;
    printf("sign = %x\n",s);
    printf("exponent = %x\n",e);
    printf("mantissa = %x\n",m);
    return 0;
}

ここでは、min変数を使用して最終的な数値を変更しています... min=pow(2,-129)、pow(2,-128)、および pow(2,-130) を使用して結果を確認し、 Denormalを見ました数が表示されます。この wiki ページですべて説明されています。

于 2014-11-07T05:50:05.630 に答える