Dużo czytałem na temat pływaków, ale wszystko to jest niepotrzebnie zaangażowane. myślę Mam go dość dużo rozumieć, ale jest tylko jedna rzecz, chciałbym wiedzieć na pewno:Jakie typy liczb można przedstawić w binarnym zmiennoprzecinkowaniu?
wiem, że frakcje postaci 1/pow(2,n)
, z n
liczbą całkowitą, może być dokładnie reprezentowana w liczbach zmiennoprzecinkowych. Oznacza to, że jeśli dodaję do siebie 3200 razy 1/32
, otrzymam dokładnie 1,000,000
.
Co z czymś takim jak 1/(32+16)
? To jedna z sumy dwóch mocy dwóch, czy to działa? Czy to jest 1/32+1/16
, które działa? W tym miejscu jestem zdezorientowany, więc jeśli ktokolwiek mógłby to wyjaśnić, byłbym wdzięczny.
Więc jeśli mam to prawo, mogę użyć dowolnej liczby "X/Y", o ile "Y" jest potęgą 2, a "X" jest liczbą mniejszą niż "2^53"? –
Tak, zgadza się. (z wyłączeniem przypadków przekroczenia/niedomiaru) – Mysticial
@Mysticial: +1 dla odpowiedzi, ale mam wątpliwości. 24/48 = 0,5, jednak zgodnie z powyższą zasadą, nie powinno być możliwe do reprezentacji, ponieważ 3 jest jednym z głównych czynników 48, który nie jest jednym z głównych czynników 10. Czemu? – legends2k