Интересно, может ли кто-нибудь помочь мне с созданием псевдокода о том, как делить n-битные двоичные целые числа? Вот что, я думаю, может сработать прямо сейчас, может кто-нибудь исправить это, если я ошибаюсь:
divide (x,y)
if x=0: return (0,0) //(quotient, remainder)
(q,r) = divide(floor(x/2), y)
q=2q, r=2r
if x is odd: r = r+1
if r >= y: r = r-y, q = q+1
return (q,r)
Ребята, не могли бы вы сказать, что этот общий алгоритм псевдокода решит поставленную задачу деления n-битных чисел, или я что-то упустил в своем псевдокоде, прежде чем я начну кодировать что-то неправильное?
Кроме очевидных вещей (не проверка на деление на ноль, не обработка отрицательных чисел), похоже, работает. Я убедил себя, просто применяя это к номерам базы-10.
Других решений пока нет …