Мне нужен способ вычислить, сколько раз фиксированное число B содержится в номере с фиксированной точкой A. Что-то вроде целочисленного деления, но в нецелочисленных операндах. Мне нужно создать аппаратный блок для этой операции. Мое первое предположение - использовать деление как сдвиг, вычесть и остановиться, когда я дойду до дробной части, но, возможно, вы знаете, как лучше ее найти.Оборудование для «A div B» с фиксированной точкой A и B
-1
A
ответ
0
Если я вас правильно понял вы хотите целую часть дробного деления, т.е.
C = floor(A/B)
Теперь дробное деление ничем не отличается от целочисленного деления, помимо регулировки десятичной точки, если вы представляете A = a * 2^-n
и B = b * 2^-m
вы получите
C = floor(A/B) = floor((a/b) * 2^(-n-m))
Таким образом, вы можете использовать алгоритм деления для чисел (которые, по существу, сдвиг и вычитать) без изменений и игнорировать (округлить) наименее значимый n+m
бит или более эффективно просто прекратите итерацию после достижения десятичной точки.