首页 文章

仅使用按位运算除以两个整数[重复]

提问于
浏览
0

可能重复:使用位智能运算符实现除法

我最近通过按位函数深入研究,并开始使用按位运算符实现基本算术函数 . 到目前为止,我已经得到了 (+, -, *) . 但是我不确定如何接近分裂 . 我知道我可以以某种方式使用乘法,但不知道如何使用该方法来解决这个问题 .

那么我如何仅使用按位运算符来实现除法: (|, &, ~, ^, >>, <<) 在C中?对于任何要求的人来说,这不是家庭作业,只是个人知识 .

如果您愿意,可以在代码中调用以下函数以使其更容易(这些是预先编写的)

int badd(int n1, int n2);
int bsub(int n1, int n2);
int bmult(int n1, int n2);

1 回答

  • 0

    好吧,假设您有可用的标准库,您可以在C中完全分割两个整数而不使用任何运算符:

    int result = div(a, b).quot;
    

    注意:这个答案纯粹是修辞性的,但是当标准库(以及语言本身)支持它时,它被用来表示在C中编写完整的分割函数的愚蠢 . 当答案已经触手可及时,为什么要重新编写方向盘(即使只是为了学习)?

相关问题