No więc jest na to prosty sposób i zwie się fixed-point math.
Zakładasz, że liczba jest zapisana w formacie np. 4:4 bity , gdzie 4 wysokie bity to liczba całkowita w przedziale 0-15 , a 4 niższe to ułamek w przedziale 0/16-15/16
Jeżeli mnożysz liczbe 8:0 przez 4:4 to masz wynik 12:4 i wszystko cacy - masz swój wynik i wartość ułamkową.
Jeżeli chciałbyś pomnożyc dwie liczby ułamkowe przez siebie , to masz 4:4 * 4:4 i wynik 8:8, żeby wrócić do zapisu ułamka jako 0/16-15/16 musisz przesunąc wynik o 4 bity w prawo - żeby mieć 8:4.
Jeżeli okaże się, że w 8 bitach się nie zmieścisz to będziesz musiał użyc procedurki mnożącej 16bitowe liczby.