重複の可能性:
ビット演算子を使用して除算を実装する
私は最近、ビット単位の関数をより深く理解し、ビット単位の演算子を使用して基本的な算術関数を実装し始めました。これまでのところ私は得てい(+, -, *)
ます。しかし、どうやって分割に取り組むのかよくわかりません。代わりにどういうわけか乗算を使用できることは知っていますが、その方法を使用してこれにアプローチする方法もわかりません。
では、これらのビット演算子のみを使用して除算を実装するにはどうすればよいでしょう(|, &, ~, ^, >>, <<)
か。尋ねる人にとって、これは宿題ではなく、個人的な知識です。
必要に応じて、コード内で次の関数を呼び出して簡単にすることができます(これらは事前に作成されています)
int badd(int n1, int n2);
int bsub(int n1, int n2);
int bmult(int n1, int n2);