ビットシフトまたはビットごとの演算子のみを使用して、整数を別の整数 (両方とも正) で割って剰余を取得する方法を知りたいです。/operator またはoperatorは%使用しないでください。
たとえば、除数が次の形式の剰余を取得するには2^k、次の操作で剰余が得られます。
m = Remainder
n = The number
d = The divisor
m = n & ( d - 1 )
ただし、このメソッドdは が の形式の場合にのみ機能し2^kます。の累乗以外の同様の方法を知りたいです2。私は現在問題に取り組んでおり、programming challengesプログラムの実行時間を短縮するためにそのような方法を採用したいと考えています