有实现xxy的两个C语言函数如下: 假定某计算机M中ALU只能进行加减运算和逻辑运算,请回答下列问题: n位整数乘法指令可保存2n位乘积,当仅取低n位作为乘积时,其结果可能会发生溢出。当n=32,x=231-1,y=2时,带符号整数乘法指令和无符号整

admin2021-03-17  23

问题 有实现xxy的两个C语言函数如下:

假定某计算机M中ALU只能进行加减运算和逻辑运算,请回答下列问题:
n位整数乘法指令可保存2n位乘积,当仅取低n位作为乘积时,其结果可能会发生溢出。当n=32,x=231-1,y=2时,带符号整数乘法指令和无符号整数乘法指令得到的xxy的2n位乘积分别是什么(用十六进制表示)?此时函数umul(          )和imul(          )的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积的低n位作为乘法结果时,如何用2n位乘积进行溢出判断?

选项

答案当n=32、x=231-1、y=2时,带符号整数和无符号整数乘法指令得到的64位乘积都为0000 0000 FFFF FFFEH。函数imul的结果溢出,而函数umul结果不溢出。对于无符号整数乘法,若乘积高n位全为0,则不溢出,否则溢出。

解析
转载请注明原文地址:https://kaotiyun.com/show/fT3i777K
0

相关试题推荐
最新回复(0)