我已经搜索了这么长时间,但我不明白这个问题的意思。
问题:
Write a program in any language to determine how your computer handles graceful
underflow.
我知道溢出条件是这样的:如果一个整数可以存储最大值x,并且如果我们分配x+1的值,则x+1br>从高性能科学计算/线性代数的角度来看,它是如何看待的
我读过这个链接,但我认为它与我上面提到的下溢/上溢内容相同。优雅的底流代表什么?
好吧,根据@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=%en",temp);
ptr=(unsigned int*)&temp;
s = *ptr >> 31;
e = *ptr & 0x7f800000;
e >>= 23;
m = *ptr & 0x07fffff;
printf("sign = %xn",s);
printf("exponent = %xn",e);
printf("mantissa = %xn",m);
return 0;
}
此处,min变量用于更改最终数字。。。我使用min=pow(2-129)、pow(2/128)和pow(2-100)来查看结果,并显示saw-the Denormal数。这个wiki页面解释了这一切。