在计算机系统程序员的观点(2.3.5)一书中,计算二进制补码乘法的方法描述如下:
C中的符号乘法通常通过将2w位乘积截断为w位来执行。 将二进制补码数截断为w位等效于首先计算其值取2 w 为模,然后从无符号转换为二进制补码。
因此,对于相似的位级操作数,为什么无符号乘法与二进制补码乘法不同?为什么二进制补码乘法需要进行符号扩展?
要计算无符号和二进制补码的相同位表示,我们可以转换二进制补码的参数,然后执行无符号加法,最后转换回二进制补码。
由于乘法包含多个加法运算,为什么无符号乘法和二进制补码乘法的完整表示形式不同?