文章
63
粉丝
0
获赞
0
访问
13.4k
(1)因为乘法可以转化为加法与移位操作。
(2)控制逻辑的作用是控制加法,移位操作的次数,并且发出控制信号来执行加法,移位等操作。
(3)①没有乘法指令最长,我们需要不断循环移位操作和加法操作来模拟乘法操作,通常需要很多时间周期。③有使用阵列乘法器实现的乘法指令最短,因为采用并行计算,只需一个时钟周期即可完成乘法操作。
(4)x*y=2^32-2,转化为十六机制为FFFF FFFEH,结果为正数,符号扩展或零扩展均在高32位补0,即0000 0000 FFFF FFFEH。umul()返回结果不溢出,但是imul()返回结果为FFFF FFFEH,为负数,所以发生溢出。如果对于2n位乘积结果,高n位全为0,截断后真值不发生变化,则不发生溢出;反之发生溢出。
评分及理由
(1)得分及理由(满分2分)
学生回答“因为乘法可以转化为加法与移位操作”,正确指出了乘法运算可以通过加法和移位实现,与标准答案一致。但未提及编译器转换或循环代码段等细节,不过核心观点正确。得2分。
(2)得分及理由(满分2分)
学生回答“控制逻辑的作用是控制加法,移位操作的次数,并且发出控制信号来执行加法,移位等操作”,正确描述了控制逻辑的功能,包括控制循环次数和发出控制信号,与标准答案一致。得2分。
(3)得分及理由(满分4分)
学生正确指出①执行时间最长、③执行时间最短,理由充分:①需要循环移位和加法模拟乘法,耗时多;③采用并行计算,一个时钟周期完成。但未详细比较②和③的区别(②需要多个时钟周期,③一个周期),不过主要观点正确。扣1分。得3分。
(4)得分及理由(满分5分)
第一问:学生计算x×y=2^32-2,十六进制为FFFF FFFEH,但带符号乘法结果应为00000000FFFFFFFEH(正数),学生错误表示为FFFF FFFEH(未考虑高32位),扣1分。
第二问:正确判断umul()不溢出、imul()溢出,理由正确(imul()结果为负,溢出)。得2分。
第三问:溢出判断正确(高n位全0无溢出,否则溢出),与标准答案一致。得2分。
本小题总计得4分。
题目总分:2+2+3+4=11分
登录后发布评论
暂无评论,来抢沙发