Strona 1 z 1

[+] System zmiennopozycyjny

: 01 lutego 2010, 22:06
autor: LuckyF
Witam.
Mam zadanie:
Przedstaw liczbę x=-21,3 w słowie o długości d+1=16 bitów, o t=8 bitach mantysy 
Teraz moje pytanie brzmi w jaki sposób najłatwiej przekształcić tę liczbę i czy będzie to przekształcenie dokładne?
Sam doliczyłem się cechy 0000101 jednak nie potrafię doliczyć się mantysy. Proszę o pomoc, bo egzamin już w czwartek.

Z góry dziękuję.

: 01 lutego 2010, 22:39
autor: AdeBe
LuckyF pisze:I czy będzie to przekształcenie dokładne?
Ułamki dziesiętne przeważnie nie dają się dokładnie przekształcić do postaci binarnej.

Poza tym: wg. jakiego systemu ta liczba jest reprezentowana? IEEE-754 czy jakiś inny wymyślony przez wykładowcę?

: 02 lutego 2010, 11:17
autor: LuckyF
O tym według jakiego systemu, szczerze mówiąc, nie mam pojęcia. W wykładach o tym nic nie mam. Wiem natomiast, że liczbę 18,5 rozpisaną mam tak:

Obrazek

Może to pomoże. Mantysa jest z przedziału [0.5 , 1).
Ułamki dziesiętne przeważnie nie dają się dokładnie przekształcić do postaci binarnej.
Więc liczba ta wyniesie:
10000101.10100100?

Jeśli nie to prosiłbym o poprawienie mnie.

Edycja:
Trochę dokładniej:
u mnie x = (-1)^S * M * 2^C
a nie:
x = (-1^S) * 1.M * 2^C

: 03 lutego 2010, 18:05
autor: AdeBe
Cechę wyliczyłeś dobrze, no to z mantysą też żaden problem.
mantysa = 21.3 / 32 = 0.665625
Kolejne bity mantysy oznaczają kolejne ułamki 2^(-x), czyli 1/2 (0.5), 1/4 (0.25), 1/8 (0.125), 1/16 (0.0625), 1/32 (0.03125), 1/64 (0.015625), 1/128 (0.0078125), 1/128 (0.00390625)
Przy obliczaniu sumujesz te ułamki tak, aby suma była jak najbliższa przedstawionej liczbie.
0.665625 ~= 0.5 + 0.125 + 0.03125 + 0.0078125 -- z lekkim niedomiarem.
Zapisujesz sobie jako 1 te bity, które weszły w skład sumy. Musisz tylko przy zapisie uważać czy najstarszy bit jest po lewej czy po prawej stronie.

Podejrzewam, że będziesz mógł mieć na egzaminie kalkulator, bo liczenie tego ręcznie to proszenie się o pomyłkę na 6 miejscu po przecinku.

Można to też liczyć na ułamkach zwykłych, tylko musisz wtedy zamienić podaną liczbę na taki przecinek - lepsze kalkulatory mogą wyświetlać liczby w postaci ułamków zwykłych.
Wtedy też od razu widać, czy liczba da się przedstawić dokładnie - mianownik musi być potęgą dwójki z zakresu od 2 do 2^(liczba_bitów_mantysy), czyli dla 8 bitów będą to 2,4,8,16,32,64,128,256.

: 04 lutego 2010, 13:38
autor: LuckyF
Dziękuję za pomoc. Akurat nie miałem tego na egzaminie, ale zawsze się do czegoś przyda. Jeszcze raz dzięki.