Wydaje się, że pytanie brzmi "jak działa FPU?", Niezależnie od szerokości bitów.
FPU wykonuje dodawanie, mnożenie, dzielenie itp. Każdy z nich ma inny algorytm.
Dodawanie
(też odejmowanie)
podawana dwa numery z wykładnik i:
- x1 =
m1 * 2^e1
- x2 =
m2 * 2^e2
, pierwszym krokiem jest normalizacja :
- x1 =
m1 * 2^e1
- x2 =
(m2 * 2^(e2 - e1)) * 2^e1
(zakładając E2> E1)
Następnie można dodać mantys:
- x1 + x2 =
(whatever) * 2^e1
Potem , należy przekonwertować wynik do prawidłowej formy mantysy/wykładnika (np. część (cokolwiek) może być wymagana powinno być między 2^23 a 2^24). To się nazywa "renormalizacja", jeśli się nie mylę. W tym miejscu należy również sprawdzić, czy nie ma przepełnienia i niedopełnienia.
Mnożenie
Wystarczy pomnożyć mantys i dodać wykładniki. Następnie zrenormalizuj pomnożone mantysy.
Division
zrobić "długi" algorytm podziału na mantys, odejmujemy wykładniki. Renormalizacja może nie być konieczna (w zależności od sposobu wdrożenia długiego podziału).
sinus/cosinus
Konwersja wejścia do przedziału [0 ... π/2], a następnie uruchomić algorytmu CORDIC na nim.
Itd
Jest to tylko * skomplikowany * niż int64, ale może być obsługiwany z 2 32-bitowych danych. – Jarod42