Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Based on: https://www.geeksforgeeks.org/non-restoring-division-unsigned-integer/
- #define sign(num, n) ((num >> n) & 1)
- int Divide(int N, int Q, int M) {
- A = 0;
- szQ = N - 1;
- aM[2] = {-M, M};
- for (; N > 0; N--) {
- sA = sign(A, 31);
- A += A + sign(Q, szQ) + aM[sA];
- Q = (Q + Q + 1) ^ sign(A, 31);
- }
- if (sign(A, 31)) A += M;
- //Q = quotient, A = remainder
- return Q;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement