在现实世界中曾经使用过"伪造的减法"吗?

Jet*_*tti 5 c

我正在参加计算机系统课程作为我的硕士课程的预先要求,并且遇到了一些令我着迷并且很难看到实际用途的东西,那就是"伪造减法"以及不需要减法的事实指令.

就像是:

x - y

可以写成:

x +(~y + 1)

现在,这一切都很好,但似乎对于简单的减法来说过于复杂,特别是当你可以轻松地放入"x - y"时.是否有必要这样做的情况,或者只是可以做但不是的事情.

Oli*_*rth 6

这通常是在硬件级别(即ALU内部)完成的.

在软件层面,它通常是无用的,因为它永远不会比直接减法更有效(除非你有一个真正奇怪的编译器/平台组合).

  • 这不是在代码中编写代码的原因. (3认同)

pho*_*xis 2

两者的补码实现是在硬件中完成的,因此您不需要像内置数据类型那样实现它们。

如果您正在制作一个n位整数算术库,那么您需要模拟整数加法、减法、乘法和除法等运算,在这种情况下,可以实现这种技术来添加n位长度的数字,但使用在我看来,携带标志这样做是一个更好的实现。