A Note on Division of Positive Integers Fred Wilson 3820 Silver Oak St. Dayton OH 45424 At the risk of flaunting a marginal grasp of the obvious I would like to make a few observations on the division of fixed point numbers. At best, division is a pain and should be avoided where possible. However, if we assume t h a t the magnitude of most operands is less t h a n the m a x i m u m representable it m a y be possible to simplify the task by pre-scaling the operands before division. Observation The initial operands. 259/12 = 21 remainder = 7 Leading zeros do contribute to the result. W h a t to do Example 0000 0001 0000 0011 not Scan both operands for the X X X X X X X l 0 0 0 0 0 0 1 1 most significant bit set. Call X X X X X X X O 0 0 0 0 I i 0 0 the lesser shift count i. If there are more significant bits in the divisor t h a n the dividend, this i=7 might be a good place to quit since the result will be zero. Any divisor can be represented Shift the divisor and dividend 1 0 0 0 0 O0 111 as the product of a number right until the least significant 0 0000 11 iO0 I bit of the divisor is set. Any and an integer power of two. bits shifted out of the dividend are the least significant bits of the remainder. Call this shift i=7 j=2 tmp=11 count j. The N bit by M bit division has Perform the division. For ease now been reduced to a (N-i-j) of illustration, the example 0 0 0 0 0 11 by (M-i-j) operation. In this uses long division. case, a 16x16 has been reduced to a 7x7. 0 0101 Ol I 1 0 0 0 0 O0 ii 100 ii 1 O0 ii The remainder from the result=O01 O ~ s ~ f f f ) (7) division is the most significant remainder ~ 1 portion of the final remainder. (The i+j leading zeros of the result are not shown.)
/lp/association-for-computing-machinery/a-note-on-division-of-positive-integers-9qQS0Cs2Ue