Liczba zmiennoprzecinkowa zadanie

Liczba zmiennoprzecinkowa zadanie
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Podana jest liczba całkowita 0x40C00000. Jaka to będzie liczba zmiennoprzecinkowa o takiej samej reprezentacji binarnej?
Nie bardzo rozumiem treści tego zadania może ktoś to wytłumaczy o co tutaj chodzi i co zrobić krok po kroku.

Ogarniam rozbijanie liczby na liczbę zmienną przecinkową.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

No masz tu 8 bajtów, czyli 64 bity oczywiście 4 bajty. Najprościej to zapisz to sobie jako unsigned int a potem zrzutuj na double float i wypisz ;] A jak chcesz ręcznie to zobacz ile bitów pójdzie na mantyse i ile na cechę i policz wynik.

  • Rejestracja: dni
  • Ostatnio: dni
1

@Shalom tam są tylko 4 bajty :)
PS. wysłałem odpowiednią informacje do CERNu. Oni już sobie po IP ustalą o kogo chodzi. I nie miej mi tego za złe, ja to robię w twoim interesie.

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

0|100 0000 1|100 0000 0000 0000 0000 0000

1.Znak to 0 czyli dodatnia.
2.Cecha to 129 czyli 2.
a mantysa to 4194304.
czyli powinienem to zapisac tak 1.4194304 * 2^2?

w konsoli wychodzi tyle 1.08632e+009 .

Coś mi tu nie gra i nie wiem co..

XA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 78
1

Swoją swoją mantysę zapisujesz jako:
1 * 2^{-1} + 0 * 2^{-2} + 0 * 2^{-3} + 0 + ... + 0= 1/2

Masz liczbę znormalizowaną, zatem dodajesz jedynkę, dostajesz 1.5.
Dalej masz: 1.5 * 2^2 = 6

Spodziewam się, że chodzi o IEEE754.
https://www.h-schmidt.net/FloatConverter/IEEE754.html
przeklikaj się przez to, zrozumiesz o co chodzi.

Jeśli chcesz zrozumieć głębiej, to zadam Ci kilka pytań pomocniczych:

  1. Co to są liczby zdenormalizowane ? Jaki to ma sens ?
  2. Co zyskasz zwiększając bity na mantysę ? A co stracisz?
  3. Czy jesteś w stanie wskazać liczbę, która nie ma reprezentacji ?
  4. Ile liczb całkowitych możesz reprezentować ?
  5. Jakie liczby całkowite jesteś w stanie reprezentować (to pytanie jest dość luźne, po prostu się nad tym zastanów).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.