【问题标题】:Quick subtraction without borrow无需借位的快速减法
【发布时间】:2013-04-15 01:00:16
【问题描述】:

在硬件或软件中是否有一种无需借位即可快速减法的方法? IE。 9 - 11 = 98 我想在 C++ 中实现它,但内联汇编是一种选择。

【问题讨论】:

  • 你能说明为什么结果是 8 吗?
  • 如果不从 0 中取 1(借位),就无法使用二进制补码进行减法。
  • @nhahtdh 我相信它可以通过减去每一列来工作,如果结果为负,则将该列减法的结果加 10。
  • @KendrickLamar:异或运算会做“减法”(或“加法”),忽略进位和借位。
  • @chewsocks: 0 - 1 是 -1,加 10 就是 9,所以你的结果不是 98 而不是 8?

标签: c++ gcc assembly


【解决方案1】:

我想你想要abs((X % 10) - (Y % 10))

【讨论】:

  • 或 (10 + X % 10 - Y % 10) % 10。
  • 是的,这些确实有效! abs 和额外的% 有很大区别吗?
猜你喜欢
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
相关资源
最近更新 更多