文章

86

粉丝

39

获赞

1

访问

8.4k

头像
【2017年】408计算机统考真题模拟考试 - 第43题答案笔记
计算机组成原理
发布于2024年12月1日 07:17
阅读数 102

计算机考研408统考历年真题及答案解析

1、当n=0时,n-1为0xFFFFFFFF,是32位无符号能表示的最大值,因此i<=n-1的条件将永远满足,出现死循环

也可能会出现死循环,当n=0x80000000,时n-1会溢出,变成0x7FFFFFFF,是int型变量能表示的最大值,条件同样会一直满足

2、从代码可以看出sum计算的是1+2+2平方+....+2的n次方

则f1(23)和f2(23)的数值是2的24次方-1,即int型的0x00FF FFFF,有24个1,而float型数据的尾数部分的有效位数是23位加上隐藏

的一位刚好24位,因此都能够正确保存,浮点表示为1.111111111111 * 2^23即,阶数为127+23=10010110

尾数为11111111111111111111,则机器数为0x4B7F FFFF

3、f(24) = 2的25次方-1,即int的0x01FF FFFF,从上面可以得到,float型只能保存24位有效尾数,则这里共有25个1,

因此会进行舍入,导致结果不相等,这里是入1,则float的数值为由1.11111111 * 2^24,尾数进一后为

10.0000000 * 2^24=2^25,则f2比f1多1

4、f(31)=0xFFFF FFFF,是int型中-1的补码表示,因此f1的返回值是-1。

最大的n是f(30)=0x7FFF FFFF,n为30

5、7F80 0000H的阶码段为111 1111 1,尾数段为0,符号位为0,则表示正无穷,

float型能表示的最大值为1.111111111 * 2^127,由3可以得知f(127) = 2^128 - 1,浮点表示为1.111111111(128个1)*2^127

,当经过舍入后会变成1.000 * 2^128,阶码上溢,因此最大得n是126

无舍入由2和3可知为n=23

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发