However, multipliciation and division require some attention. This is because natively, z = xy is an integer
multiplication, given x and y are integers. However, using the fixed point notation, the represented values are
z′ = x′y′ = =
. However, using the implicit binary point, the interpreted value of z is
.
In other words, the implicit binary point of the product is no longer between bit 3 and bit 4, but between bit 7 and bit 8! If we do interpret z with an implicit binary point between bit 3 and bit 4, then the value is 100002 too big.
This problem can be fixed in two ways. One is to understand the product term has an implicit binary point between bit 7 and bit 8. However, this method requires the programmer to keep track of different fixed point representations. It does offer one advantage: precision. No precision is lost in the multiplication.
The second method is to shift the product four times to the right so that the binary point is at the right place again. Let us use the rs(x,n) notation to mean right shift a number x n bit positions. Then the most intuitive way to adjust (normalize) the product is z = rs(xy,4). This means a product bit pattern 10110101100101012 will become 1011010110012, which is then interpreted as 10110101.10012,