可能重复:使用位智能运算符实现除法
我最近通过按位函数深入研究,并开始使用按位运算符实现基本算术函数 . 到目前为止,我已经得到了 (+, -, *)
. 但是我不确定如何接近分裂 . 我知道我可以以某种方式使用乘法,但不知道如何使用该方法来解决这个问题 .
那么我如何仅使用按位运算符来实现除法: (|, &, ~, ^, >>, <<)
在C中?对于任何要求的人来说,这不是家庭作业,只是个人知识 .
如果您愿意,可以在代码中调用以下函数以使其更容易(这些是预先编写的)
int badd(int n1, int n2);
int bsub(int n1, int n2);
int bmult(int n1, int n2);
1 回答
好吧,假设您有可用的标准库,您可以在C中完全分割两个整数而不使用任何运算符:
注意:这个答案纯粹是修辞性的,但是当标准库(以及语言本身)支持它时,它被用来表示在C中编写完整的分割函数的愚蠢 . 当答案已经触手可及时,为什么要重新编写方向盘(即使只是为了学习)?