Załóżmy, że mamy system, który operuje na liczbach 32-bitowych maksymalnie i j. programowania również nie ma większych wbudowanych.
Chcemy zrobić np. programowe operatory dla liczb np. 1024 bitowych.
Operatory +, -, -(jednostronny), =, <, >, ... to proste
Nieco bardziej skomplikowany jest *, ale i to nie jest specjalny problem, bo nie trudno się robi.
Pozostaje jednak operator /.
I tutaj pojawia się pytanie. Czy istnieje jakiś sposób rozbicia długiego dzielnika? Dla małego dzielnika łatwo policzyć, ale jak dzielnik jest duży, to co z tym można zrobić? Czy może jedyny sposób to metoda przechodzenia bit po bicie w wyniku na zasadzie:
for(i od 1023 do 0)
{
wynik.bit[i] = 1;
tmp = wynik * dzielnik;
if (tmp > dzielna) wynik.bit[i] = 0;
else if (tmp == dzielna) break;
}
No i operator mod, ale tutaj to może na zasadzie dzielimy, mnożymy, odejmujemy, chyba że jest jakiś prostszy sposób.