For fast division, I would like to do positive integer floor division of $a \in \mathbb{N}$ and $b \in \mathbb{N+}$ through multiplication as:
$$\frac{a}{b} = a \cdot \frac{1}{b}$$
When $a$ and $b$ are of limited bit length, given by $len(a)$ and $len(b)$, an error is usually introduced by the truncation in the floor operation ($\lfloor x \rfloor$), even when scaling the reciprocal value of $b$ with $len(a) + len(b)$ as:
$$\left\lfloor \frac{a}{b} \right\rfloor = \left\lfloor\frac{a \cdot \left\lfloor\frac{2 ^ {len(a) + len(b)}}{b}\right\rfloor}{2 ^ {len(a) + len(b)}}\right\rfloor$$
The reason for doing as above, is that for repeated division with same value of $b$, $\left\lfloor\frac{2 ^ {len(a) + len(b)}}{b}\right\rfloor$ can then be calculated once and held as integer value with fixed length, and the final floor division by $2 ^ {len(a) + len(b)}$ is a simple truncation of bits, whereby the division is converted to a simple integer multiplication.
However, it appears for a number of specific cases that I have tried, that by adding $1$ to the multiplication constant, the multiplication actually gives the correct result, thus doing:
$$\left\lfloor \frac{a}{b} \right\rfloor = \left\lfloor\frac{a \cdot \left\lfloor\frac{2 ^ {len(a) + len(b)}}{b} + 1\right\rfloor}{2 ^ {len(a) + len(b)}}\right\rfloor$$
Is my conclusion correct, and is there a proof of this method for division?