Zadanie teoretyczne związane z zapisem liczby w formacie IEEE-754

0

Dzień dobry!

Jeśli zły dział proszę o przeniesienie.
Niech n będzie taką liczbą całkowitą, że 3 * 2^n jest liczbą znormalizowaną w formacie pojedynczej precyzji IEEE-754. Jak wygląda w tym formacie kodowanie liczby 3 * 2^{n-1}

I teraz pierwsze co muszę zrozumieć.
Skąd tam ta trójka ?

Czy nie powinna była tam stać liczba zero-jedynkowa ? Przecież jesteśmy w podstawie 2.

dodanie znaczników `` - furious programming

1

A nie możesz przeczytać jak sie koduje liczby wg tego standardu? o_O
Liczby zmiennoprzecinkowe zapisujesz jako mantysa*2cecha. Tutaj mantysą jest liczba 3 akurat. Standard definiuje ile bitów przeznaczasz na zapis mantysy a ile na zapis cechy.
Jasne że ta "3" będzie zapisana binarnie, ale wtedy pewnie w ogóle nie wiedziałbyś o co chodzi w zadaniu ;]

0

Czytałem, ale właśnie zależy mi żeby zrozumieć to czego nie rozumiem :)

Dlatego proszę CIebie o wyrozumiałość.

No więc. W takim razie równoważnie mogę zapisać:

(0000011,000)2 * 2n

Mamy sprawdzić jak będzie wyglądała liczba z wykładnikiem o jeden mniejszym - a więc podzielona przez dwa - a więc przesuwamy bity o jeden w prawo.

Tak więc intuicyjnie:

(0000011,000)2 * 2n
(00000110,00) 2 * 2n-1
Czyli wydaje mi się, że ostatecznie to jest:
6 * 2n

Ale nie mam pewności więc proszę o pomoc.

Hehe, przesunąłem w lewo, a nie w prawo jak zapowiedziałem :-)

Poprawiam się:

(0000011,000)2 * 2n
(000001,1000)2 * 2n

No i wydaje mi się, że to jest
1.5 * 2n-1

Znowu błąd, powinieniem napisać:

1.5 * 2n

1

Nie nie, ty chyba w ogóle nie rozumiesz o co tutaj chodzi ;]
Patrz na to:
http://pl.wikipedia.org/wiki/IEEE_754#mediaviewer/Plik:IEEE-754-single1.svg
Masz 32 bity i to jest zapisana cała liczba. Twoja liczba 3*2n będzie zapisana jako:

  • 3 binarnie tam gdzie masz bity "mantysy"
  • n binarnie tam gdzie masz bity cechy
    Taka liczba będzie miała 32 bity.

Liczba 3*2n-1 to będzie też liczba 32 bitowa z 3 jako mantysą i liczbą o 1 mniejszą na bitach cechy.

0

Nie no, ja rozumiem co mówisz.

Wiem o tym podziale i tak dalej.
Ale moment:

Przecież tamta liczba jest na prawdę 2-krotnością.

Ok, jeszcze raz to przeanalizuję.
Nawet rozpiszę bity
0
To jest bit znaku (pierwszy)

I teraz 8 bitów na wykładnik.
wykładnik to jest liczba zero-jedynkowa. No po prostu trzeba by zapisać n na ośmiu bitach. Ale nie wiem jak on wygląda, więc muszę tylko tak powiedzieć
Czas na mantysę. To jest 32 - 1 - 8 = 31 - 8 = 23 bity. Muszę zapisać trójkę. (21 zer).
00000000000000000000011
No i rozpisałem.

Prawdą jest, że to co się nam zmienia to tylko wykładnik - zmniejsza się o jeden.
ALe co z tego ?
Dalej nie wiem jak sformułować odpowiedź :-)

0

No ja bym napisał po prostu że mantysa pozostaje bez zmian i jedyne co się zmienia to cecha jest liczbą mniejszą o 1, przy założeniu że n>1. Bo sytuacja kiedy n jest 1 jest trochę inna ;]

0

No właśnie, spodziewałem się, że do takiego wniosku dojdziemy. Jestem ciekaw czy to na pewno jest ok.
Masz pewność ?
Ciężko o tym jest mi myśleć. Osobiście żadnego błędu nie widzę.

0

No ja nie widzę żadnej innej możliwej odpowiedzi ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1