【发布时间】:2012-09-22 01:09:57
【问题描述】:
我最近对位函数有了更深入的了解,并开始使用位运算符实现基本的算术函数。到目前为止,我已经收到(+, -, *)。但是我不确定如何处理除法。我知道我可以以某种方式使用乘法,但也不确定如何使用该方法来解决这个问题。
那么我将如何仅使用按位运算符来实现除法:(|, &, ~, ^, >>, <<) 在 C 中?如果有人问,这不是功课,只是个人知识。
如果你喜欢,你可以在代码中调用以下函数,使其更简单(这些都是预先编写好的)
int badd(int n1, int n2);
int bsub(int n1, int n2);
int bmult(int n1, int n2);
【问题讨论】:
-
对于这样的棘手问题,您不必提及家庭作业 :)
-
我建议的欺骗链接使用减法。但我假设你已经有了这个工作。
-
签名重要吗?
-
您需要仅使用单个表达式来完成,还是允许使用函数并且也允许使用流控制语句?
-
@Link:将重复链接中的减号替换为
bsub(),就大功告成了。
标签: c int bit-manipulation division