概念问题
为什么有符号乘法/非符号乘法,却只有加法,却没有符号加法/非符号加法呢?
希望有人满意的答案
[解决办法]
加法+标志寄存器就够了。
[解决办法]
你是问: 乘法有有符号和无符号之分,而加法却没有有符号和符号之分是吗?
我是从自考的书上看到的:
无符号和有符号数的乘法指令的执行结果是不同的,看一个简单例子:
比如3*(-2) = -6为有符号数相乘,而3*14是无符号数相乘,当用补码表示-2时为1110,而无符号数14也是1110,因此3*(-2)和3*14都表示为0011*1110
如果用直接相乘的方法进行计算0001*1110则为42,这个结果对无符号数来说是正确的但是对于有符号数来说结果是错误的,所以这种乘法的操作过程就是MUL指令的执行过程.
如果用另一种方法来计算,先将1110复原为-2,并去掉符号,先计算3*2,然后再添上运算后的符号,应该是负数,即取结果的补码,则为-6,这种结果对有符号数的乘法3*(-2)来说是正确的.所以这种乘法的操作过程是适合于IMUL指令的执行过程.
这应该是乘法有有符号和无符号之分的原因吧
[解决办法]
执著是必须的,但有时候执著也影响进度,正谓因小误大。当我们真的面对数值计算方面的问题时,再回过头来研究这个问题,只要它是一个独立出来的暂时无关紧要的问题,我想暂时忽略它也是可以的,就像我忽略了浮点数的表示一样,忽略并不表示放过。学习首先是要抓主干,最后再来解决旁骛细节。