文章
161
粉丝
0
获赞
1
访问
49.7k

评分及理由
(1)得分及理由(满分2分)
学生回答指出乘法可以转化为移位和加法/减法运算,并举了例子(8×7 = 8×(4+2+1) 转化为移位相加)。这基本说明了在没有乘法指令时可以用加法和移位实现乘法,思路正确。但未明确提到“编译器可以转换为循环代码段”或“Booth算法”等更标准的描述,不过核心逻辑正确。因此给满分2分。
(2)得分及理由(满分2分)
学生回答“控制是逻辑移位还是算术移位,用于分辨无符号运算还是有符号运算”。这仅涉及移位类型的控制,但控制逻辑在乘法指令实现中更重要的作用是控制循环次数、根据乘数位决定加/减操作、控制移位方向等。学生答案不全面,只答出了一小部分(移位类型控制),未涉及核心的循环与操作控制。因此扣1分,得1分。
(3)得分及理由(满分4分)
学生回答“③执行时间最短,因为它有乘法器是硬件,硬件要比软件快很多;①执行时间最长,因为它无乘法指令,都实现不了”。
(4)得分及理由(满分5分)
学生回答:
- 带符号:FFFF FFFE 0000 0002
- 无符号:0000 0001 FFFF FFFE
- 有溢出
- 当无符号高 n 位有 1 即可溢出
分析:
1. 对于带符号乘积,标准答案是00000000FFFFFFFEH(64位),学生答“FFFF FFFE 0000 0002”错误(高低位顺序混乱且数值错误)。
2. 对于无符号乘积,标准答案也是00000000FFFFFFFEH(因为x=2^31-1, y=2,乘积为2^32-2,高32位为0),学生答“0000 0001 FFFF FFFE”错误(高32位不为0)。
3. “有溢出”表述模糊,未区分umul和imul。标准答案中umul不溢出,imul溢出。
4. 溢出判断“当无符号高 n 位有 1 即可溢出”基本正确(高n位非0则溢出...
登录后发布评论
暂无评论,来抢沙发