2015-12-13 4 views
-1

Мне нужен способ вычислить, сколько раз фиксированное число B содержится в номере с фиксированной точкой A. Что-то вроде целочисленного деления, но в нецелочисленных операндах. Мне нужно создать аппаратный блок для этой операции. Мое первое предположение - использовать деление как сдвиг, вычесть и остановиться, когда я дойду до дробной части, но, возможно, вы знаете, как лучше ее найти.Оборудование для «A div B» с фиксированной точкой A и B

ответ

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 бит или более эффективно просто прекратите итерацию после достижения десятичной точки.