Autor: | Wojciech Muła |
---|---|
Dodany: | 10.02.2002 |
Aktualizacja: | 14.12.2003 |
Wartość liczby zmiennoprzecinkowej jest liczona wg wzoru:
x = − 1S ⋅ (1 + mantissa) ⋅ 2exponent + bias
Część całkowita log2(x) z tej liczby to dokładnie exponent − bias.
; eax - liczba o pojedynczej precyzji (float) and eax, 0x7fffffff ; zerowanie bitu znaku shr eax, 23 ; |0000 0000|0000 0000|0000 0000|exp+bias | sub al, 127 ; |0000 0000|0000 0000|0000 0000|exponent |
To powinno wystarczyć do większości zastosowań i jak widać kod jest bardzo prosty.
Znormalizowana mantysa należy do przedziału [1..2) (dokładnie [1..8388607/8388608)). Poniżej przedstawiono wykresy funkcji x − 1 (kolor czerwony) i log2(x) (kolor niebieski), dla x