Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Systemy liczbowe - binarna znormalizowana postać zmiennopozycyjna
Forum PHP.pl > Inne > Hydepark
no-scared
Witam.

Zajmuję się dalej systemami liczbowymi, większość już rozumiem, ale natknąłem się na dość skomplikowane:

Zapisz w binarnej znormalizowanej postaci zmiennopozycyjnej liczbę 0,663 * 10^(-35). Otrzymany wynik uzasadnij.

Jak ugryźć takiego potwora?
Zbłąkany
A pytałeś wujka Google o pomoc? Bo ja zapytałem i na drugim miejscu dostałem to tongue.gif
no-scared
Hmm... coś próbowałem zrobić, czy ktoś byłby na tyle miły, żeby sprawdzić czy dobrze smile.gif?

0.663 * 10^-35 = 663 * 10^-38


Pierwszym krokiem jest przekształcenie wyrażenia na system binarny

663 = (1010010111)2

Musimy uzyskać wyrażenie ułamkowe, więc mnożymy i dzielimy wynik razy 2^10

(1010010111)2 = (0.1010010111)2 * 2^10


Potrzebujemy jeszcze 10^(-38) w postaci binarnej.

Log (10^(-38))=-38

Log_2 [logarytm o podstawie 2](10^(-38)) / Log_2(10) = -38

Log_2 (10^(-38)) = -38 * Log_2(10) = -126

10^(-38) = 2^(-126)


Otrzymujemy zatem:

0.663 * 10^-35 = (-1)^0 *(0.1010010111)2 * 2^10 * 2 ^(-126) = (-1)^0 *(0.1010010111)2 * 2 ^(-116)


Binarny zapis zmiennopozycyjny znormalizowany w komputerze wygląda następująco:

1 bit – opisuje znak liczby

8 bitów – cecha liczby (potęga dwójki ) podniesiona o 127

23 bity – ułamek

Zatem nasza liczba zapisana będzie następująco:

//bin(127 – 116) = bin(11) = 1011 //


Wynik: 0 00001011 10100101110000000000000

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.