[Systemy Liczbowe] Format zmiennoprzecinkowy; mantysa

Chungu
Użytkownik
Użytkownik
Posty: 121
Rejestracja: 21 paź 2016, o 20:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 42 razy

[Systemy Liczbowe] Format zmiennoprzecinkowy; mantysa

Post autor: Chungu »

Witam.
Czy mógłby mi ktoś wyjaśnić(najlepiej krok po kroku :/ ) jak stworzyć z czegoś takiego:
\(\displaystyle{ 1100,1011}\) w systemie dwójkowym mantysę znormalizowaną?
Ostatnio zmieniony 11 gru 2016, o 21:13 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
M Maciejewski
Użytkownik
Użytkownik
Posty: 318
Rejestracja: 14 maja 2016, o 16:25
Płeć: Mężczyzna
Lokalizacja: Toruń
Pomógł: 90 razy

[Systemy Liczbowe] Format zmiennoprzecinkowy; mantysa

Post autor: M Maciejewski »

Zgodnie z definicją, mantysa znormalizowana liczby \(\displaystyle{ x}\) to taka liczba \(\displaystyle{ M}\), że
\(\displaystyle{ x=\pm M\cdot 2^E}\), gdzie \(\displaystyle{ E\in\ZZ}\).
Zatem \(\displaystyle{ M=|x|\cdot 2^{-E}}\). Aby znaleźć mantysę znormalizowaną można zrobić coś takiego:

1) Skorzystać z równości:
\(\displaystyle{ \log_2|x|=\log_2M + E}\) i stąd \(\displaystyle{ \{\log_2|x| \} = \log_2M}\) (\(\displaystyle{ \{a\}=a-\lfloor a\rfloor}\) to część ułamkowa \(\displaystyle{ a}\)) i ostatecznie
\(\displaystyle{ M=2^{\{\log_2|x| \}}}\).

2) Skorzystać z algorytmu:
Jeśli \(\displaystyle{ |x|\geq 2}\), dzielimy \(\displaystyle{ |x|}\) tak dużo razy przez \(\displaystyle{ 2}\), aż wynik będzie w przedziale \(\displaystyle{ [1,2)}\).
Jeśli \(\displaystyle{ |x|<1}\), mnożymy \(\displaystyle{ |x|}\) tak dużo razy przez \(\displaystyle{ 2}\), aż wynik będzie w przedziale \(\displaystyle{ [1,2)}\).

Wtedy ten końcowy wynik to właśnie poszukiwana wartość.
ODPOWIEDZ