首页 > 试题广场 >

我们在一个int类型为32位补码表示的机器上运行程序。flo

[问答题]

我们在一个int类型为32位补码表示的机器上运行程序。float类型的值使用32位IEEE格式,而double类型的值使用64位IEEE格式。

我们产生随机整数X、?和2,并且把它们转换成double类型的值:

/* Create some arbitrary values */
 int x = random();
 int y = random();
 int z = random();
/* Convert to double */
double dx = (double) x;
double dy  = (double) y;
double dz  = (double) z;

对于下列的每个c表达式,你要指岀表达式是否总是为1。如果它总是为1,描述其中的数学 原理。否则,列举出使它为0的参数的例子。请注意,不能使用IA32机器运行GCC来测试你的答案,因为对于float和double,它使用的都是80位的扩展精度表本。

A. (float)x== (float)dx•
B.dx-dy= = (double) (x-y)

C. (dx+dy) +dz= =dx+ (dy+dz)

D. (dx*dy) *dz==dx* (dy*dz)

E. dx/dx= =dz/dz

这道题你会答吗?花几分钟告诉大家答案吧!